La principal utilidad de las cookies (galletas) es la de solventar el problema de la falta de estado en la navegación a través de las paginas web. Con las cookies, pequeñas porciones de información se quedan registradas en el navegador permitiendo identificar a este a través de diferentes páginas de un mismo sitio e incluso durante visitas entre distintos días.
Realmente las cookies no son mas que cadenas de texto que son enviadas desde el servidor al cliente (navegador) y almacenadas en este, luego el navegador envía estas cookies al servidor permitiendo así la identificación del cliente en el servidor.
FuncionamientoLa cookie es enviada al navegador desde el servidor y si este la acepta permanece en él.
Las páginas piden la cookie al navegador…
El navegador las envía, permitiendo la identificación del usuario por parte del servidor.
Bien, entonces ahora pasemos a un ejemplo útil donde se apliquen las cookies con PHP.
Formulario de contactoEn este tutorial se va a mostrar como procesar un simple formulario de contacto. El cual almacena, el nombre y correo electrónico del usuario, en dos cookies. En visitas posteriores del usuario, el código verifica si es un nuevo usuario o si ya había visitado el sistema y despliega la información correspondiente.
Definiendo las cookiesComo contamos con un formulario de contacto, primero vamos a verificar si al momento de cargar la página viene de haber presionado el botón Submit del formulario, si es así entonces, el ejemplo crea dos cookies: una para el nombre del usuario y otra para el correo electrónico del usuario.
Nota:
<?php if( isset($_POST["boton_submit"])) { $cookie_vida = 3*24*3600; // Se les asigna un tiempo de vida en segundos a las cookies // Asigna el valor a las Cookies setcookie("nombre",$_POST["name"],time()+$cookie_vida); setcookie("correo",$_POST["email"],time()+$cookie_vida); ?> Gracias por el comentario, <?php echo $_POST["name"] ?>. Esto es lo que dijiste:<br> Nombre: <?php echo $_POST["name"] ?><br> E-mail: <?php echo $_POST["email"] ?><br> Comentario: <?php echo $_POST["comentario"] ?><br> <?php exit(); } ?>Desplegando el formulario
Estos paso muestran como desplegar el formulario.
Nota:
<form method="POST"> Nombre: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> Comentario:<br> <textarea name="comentario" wrap="virtual" cols="40" rows="5"> </textarea> <br> <!-- Boton Submit --> <input type="submit" value="Submit" name="boton_submit"> </form>Verificando la cookie
Lo primero que hay que hacer, es verificar el valor de $_COOKIE[“nombre”] para ver si el usuario ya cuenta con la cookie o no. (En realidad podrías verificar cualquiera/todas de las cookies.) Si no existe el valor de $_COOKIE[“nombre”], el usuario no ha visitado el sitio antes. Si existe muestra el formulario con los datos correspondientes.
Nota:
<?php if(!$_COOKIE["nombre"]) { ?> Nombre: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <?php } else { ?> Nombre: <input type="text" name="name" value=<?php echo $_COOKIE["nombre"] ?>><br> E-mail: <input type="text" name="email" value=<?php echo $_COOKIE["correo"] ?>><br> <?php } ?>Código completo
Este es el código de ejemplo con comentarios.
Nota:
<?php” y “?>”. <?php if( isset($_POST["boton_submit"])) { // Asigna el valor a las Cookies $cookie_vida = 3*24*3600; setcookie("nombre",$_POST["name"],time()+$cookie_vida); setcookie("correo",$_POST["email"],time()+$cookie_vida); ?> Gracias por el comentario, <?php echo $_POST["name"] ?>. Esto es lo que dijiste:<br> Nombre: <?php echo $_POST["name"] ?><br> E-mail: <?php echo $_POST["email"] ?><br> Comentario: <?php echo $_POST["comentario"] ?><br> <?php exit(); } ?> <html> <head> <title>Comentarios</title> </head> <body> <!-- $PHP_SELF es la forma en PHP de referirse a la misma pagina --> <form action=<?php echo $PHP_SELF ?> method="POST"> <?php if(!$_COOKIE["nombre"]) { ?> Nombre: <input type="text" name="name"><br> E-mail: <input type="text" name="email"><br> <?php } else { ?> Nombre: <input type="text" name="name" value=<?php echo $_COOKIE["nombre"] ?>><br> E-mail: <input type="text" name="email" value=<?php echo $_COOKIE["correo"] ?>><br> <?php } ?> Comentario:<br> <textarea name="comentario" wrap="virtual" cols="40" rows="5"> </textarea> <br> <!-- Boton Submit --> <input type=submit value="Submit" name="boton_submit"> </form> </body> </html>
Usuarios que han visto este tema también han visto...
- ¿De donde vienen las variables ? en PHP
- SiteMaps de Google en PHP
- rawurlencode y rawurldecode en PHP
- Listado de registros PHP MySQL
- Mostrar la fecha en Español con PHP
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.