|
|
(4 revisiones intermedias por el mismo usuario no mostrado) |
Línea 1: |
Línea 1: |
− | {{TEP}}
| |
− |
| |
− |
| |
| {{:Usuario:ManuelRomero/php/nav}} | | {{:Usuario:ManuelRomero/php/nav}} |
| | | |
Línea 124: |
Línea 121: |
| *Utiliza también una variable de sesión para comprobar si el usuario se ha autentificado correctamente. De esta forma no hará falta comprobar las credenciales con la base de datos constantemente. | | *Utiliza también una variable de sesión para comprobar si el usuario se ha autentificado correctamente. De esta forma no hará falta comprobar las credenciales con la base de datos constantemente. |
| | | |
− | <!--
| + | |
| ==Propuesta de solución== | | ==Propuesta de solución== |
| <source lang=php> | | <source lang=php> |
Línea 200: |
Línea 197: |
| </html> | | </html> |
| </source> | | </source> |
− | -->
| + | |
| }} | | }} |
− | ===Ejemplo pŕáctico===
| |
− | *Vamos a hacer un ejemplo práctico en el que vamos a usar sesiones
| |
− | *Consiste en implementar una tienda on line con los datos que venimos trabajando
| |
− | *El siguiente diagrama muestra el escenario que queremos representar
| |
− | [[Archivo:tienda1.png]]
| |
− | *Explicación funcional de las páginas
| |
− | ;Login (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.
| |
− | ;Listado de productos (productos.php).
| |
− | : Presenta un listado de los productos de la tienda, y permite al usuario seleccionar aquellos que va a comprar.
| |
− | ;Cesta de compra (cesta.php).
| |
− | :Muestra un resumen de los productos escogidos por el usuario para su compra y da acceso a la página de pago.
| |
− | ;Pagar (pagar.php).
| |
− | :Una vez confirmada la compra, la última página debería ser la que permitiera al usuario escoger el método de pago y la forma de envío.
| |
− | :En esta aplicación simplemente mostrará un mensaje de tipo "Gracias por su compra" y ofrecerá un enlace para comenzar una nueva compra.
| |
− | ;Logoff (logoff.php).
| |
− | :Esta página desconecta al usuario de la aplicación y redirige al usuario de forma automática a la pantalla de autentificación.
| |
− | : No muestra ninguna información en pantalla, por lo que no es visible para el usuario.
| |
− | ==login.php==
| |
− | *Usando la base de datos de usuarios validamos el usuario
| |
− | *Ŝi queremos dar de alta más usuarios, se hará de forma administrativa directemente en la base de datos, es decir los usuarios ya existen en la base de datos, en nuestra aplicación no se pueden registrar (posible mejora
| |
− | *Aquí ponemos la parte de html para empezar
| |
− | *Observar una variable llamada error que visualiza información en caso de que algo no vaya bien
| |
− | *El posible valor de esa variable ne el código php
| |
− | <source lang=html5>
| |
− | <!DOCTYPE html>
| |
− | <!-- Desarrollo Web en Entorno Servidor -->
| |
− | <!-- Ejemplo Tienda Web: login.php -->
| |
− | <html>
| |
− | <head>
| |
− | <meta http-equiv="content-type" content="text/html; charset=UTF-8">
| |
− | <title>Ejemplo Tema 4: Login Tienda Web</title>
| |
− | <link href="tienda.css" rel="stylesheet" type="text/css">
| |
− | </head>
| |
− |
| |
− | <body>
| |
− | <div id='login'>
| |
− | <form action='login.php' method='post'>
| |
− | <fieldset >
| |
− | <legend>Login</legend>
| |
− | <div><span class='error'><?php echo $error; ?></span></div>
| |
− | <div class='campo'>
| |
− | <label for='usuario' >Usuario:</label><br/>
| |
− | <input type='text' name='usuario' id='usuario' maxlength="50" /><br/>
| |
− | </div>
| |
− | <div class='campo'>
| |
− | <label for='password' >Contraseña:</label><br/>
| |
− | <input type='password' name='password' id='password' maxlength="50" /><br/>
| |
− | </div>
| |
− |
| |
− | <div class='campo'>
| |
− | <input type='submit' name='enviar' value='Enviar' />
| |
− | </div>
| |
− | </fieldset>
| |
− | </form>
| |
− | </div>
| |
− | </body>
| |
− | </html>
| |
− | </html>
| |
− | </source>
| |
− | ==producto.php==
| |
− | *En este caso se deben listar todos los productos con la opción de poder incorporarlos a la cesta de la compra
| |
− | *La página se divide en varias zonas, cada una definida por una etiqueta < div> en el código HTML:
| |
− |
| |
− | #'''''encabezado'''''. Contiene únicamente el título de la página.
| |
− | #'''''productos'''''. Contiene el listado de todos los productos tal y como figuran en la base de datos. Cada producto figura en una línea (nombre y precio).
| |
− | *Se crea un formulario por cada producto, con un botón "Añadir" que envía a esta misma página los datos código, nombre y precio del producto.
| |
− | *Cuando se abre la página, se comprueba si se ha enviado este formulario, y si fuera así se añade un elemento al array asociativo $_SESSION['cesta'] con los datos del nuevo producto.
| |
− | *De cada producto se incluye el precio y el nombre
| |
− | <source lang=php>
| |
− | // Comprobamos si se ha enviado el formulario de añadir
| |
− | if (isset($_POST['enviar'])) {
| |
− | // Creamos un array con los datos del nuevo producto
| |
− | $producto['nombre'] = $_POST['nombre'];
| |
− | $producto['precio'] = $_POST['precio'];
| |
− | // y lo añadimos
| |
− | $_SESSION['cesta'][$_POST['producto']] = $producto;
| |
− | }
| |
− | </source>
| |
− | *En la cabecera a la parte de la derecha tendremos información de la compra actual de la cesta, con la opción de comrar o vaciar nuestra cesta
| |
− | <source lang=html5>
| |
− | <html>
| |
− | <head>
| |
− | <meta http-equiv="content-type" content="text/html; charset=UTF-8">
| |
− | <title>Ejemplo Tema 4: Listado de Productos</title>
| |
− | <link href="tienda.css" rel="stylesheet" type="text/css">
| |
− | </head>
| |
− |
| |
− | <body class="pagproductos">
| |
− |
| |
− | <div id="contenedor">
| |
− | <div id="encabezado">
| |
− | <h1>Listado de productos</h1>
| |
− | </div>
| |
− | <div id="cesta">
| |
− | <h3><img src="cesta.png" alt="Cesta" width="24" height="21"> Cesta</h3>
| |
− | <hr />
| |
− | </source>
| |
− |
| |
− | *En la parte inferior mantenemos la opción de desconectar
| |
− | <source lang=php>
| |
− | <br class="divisor" />
| |
− | <div id="pie">
| |
− | <form action='logoffW.php' method='post'>
| |
− | <input type='submit' name='desconectar' value='Desconectar usuario <?php echo $_SESSION['usuario']; ?>'/>
| |
− | </form>
| |
− | <?php
| |
− | if (isset($error)) {
| |
− | print "<p class='error'>Error $error: $mensaje</p>";
| |
− | }
| |
− | ?>
| |
− | </div>
| |
− | </php>
| |
− | ==cesta.php==
| |
− | ==pagar.php==
| |
− | ==logoff.php==
| |
− |
| |
− |
| |
| | | |
| {{Lectura|Title=Documentación| | | {{Lectura|Title=Documentación| |