Usuario:ManuelRomero/php/smarty/login1

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
 * Descripcion 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




 * 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 (presentación).

Desarrollando el código
http://manuel.infenlaces.com/dwes/tienda/TiendaProductos/login.php
 * 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
 * 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 continaució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á
 * Este código puede verse funcionado