Usuario:ManuelRomero/php/smarty/login

De WikiEducator
Saltar a: navegación, buscar



Probando el ejemplo

  • Puedes ver esta parte del ejercicio ejecutándose en la web:
http://manuel.infenlaces.com/dwes/tienda/TiendaLogin/login.php
Icon present.gif
Tip: usuario dwes y pass abc123.


Icon present.gif
Tip: Esta parte está toda resuelta aquí para dejar claro el uso de plantillas


La lógica

  • Generaremos el fichero login.php
  • Su función es autentificar al usuario de la aplicación web.
  • Todos los usuarios de la aplicación deberán autentificarse utilizando esta página antes de poder acceder al resto de páginas.
  • La siguiente imagen muestra un caso de uso de este escenario

TiendaLogin.png

Descripción de la imagen
  1. Login pedirá un usuario y contraseña para validar
  2. Al darle a validar, se validará el usuario contra la base de datos.
  3. Si no es ok mostrará un error y seguiremos en login.php, si es correcto iremos a productos.php

Para este escenario necesitaremos los siguientes ficheros según vemos en la imagen

TiendaLogin2.png

Descripción de la imagen
  1. El cliente invoca al fichero login.php
  2. Este método solicitará usuario y contraseña visualizando la plantilla login.tpl
  3. Cuando presionemos enviar validará contra la base de datos
  4. Si todo ok, mostrará la plantilla productos.tpl;
  5. Si no se ha validado, mostrará la plantilla login.tpl con el error encontrado
  • Para implementar esta parte del proyecto necesitaremos desarrollar los siguientes ficheros
  1. DB.php (clase)
  2. login.php (lógica)
  3. productos.php (lógica sin contenido)
  4. login.tpl (presentacion).

Desarrollando el código

DB.php
  • Esta es una clase que mantendrá todo el acceso a la base de datos
  • De momento solo necesito un método de validar el usuario
  • Este método tendrá que hacer 3 cosas:
  1. conectar a la base de datos,
  2. realizar una consulta,
  3. verificar que la consulta contenga un registro (OK! Usuario existe), o no (Usuario no registrado)
  • Seguramente otros métodos tengan que hacer estas acciones (conectar, ejecutar consultas, …), por lo que estas acciones será métodos privados de la clase.
  • Para poder pasar parámetros a la hora de ejecutar la consutla usaremos PDO en lugar de mysqli

DB.png

  • El código de esta clase
login.php
  • Este fichero implementa las acciones especificadas anteriormente
  • Cargamos la librería de smarty
  • Realizamos la lógica
  • Exportamos la variable $error para la plantilla
  • Visualizamos la plantilla
  • El código se exporta a continuación
login.tpl
  • La plantilla tiene la parte de html
  • Lo único que visualiza es el código de error en caso de que lo hubiera
productos.php
  • En esta primera parte del proyecto estos ficheros solo contienen información básica,
  • Se implementará en la segunda parte del desarrollo
producto.tpl
  • La plantilla del producto
  • Simplemente una página de información de lo que hará