Cookies en PHP

Los cookies se utilizan comúnmente para identificar usuarios.

¿Qué es un Cookie?

Los cookies se utilizan comúnmente para identificar usuarios. Los cookies son pequeños archivos que el servidor deja en el ordenador del usuario. Cada vez que el mismo ordenador solicita una página a través del navegador, también envía el cookies. A través de PHP, puedes crear y recuperar el valor de los cookies.

¿Cómo crear un cookie?

La función setcookie() se utiliza para configurar el cookie.

Nota:La función setcookie() debe estar ubicada antes de las etiquetas <html>.

Sintaxis

setcookie(name, value, expire, path, domain);

Ejemplo

En el siguiente ejemplo, crearemos un cookie llamado "user", le asignaremos el valor "Alex Porter". También establecimos que este cookie caduque en una hora:

<?php 
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
<body>
</body>
</html>

Nota:Al enviar el cookie, su valor se codifica automáticamente en URL, y se decodifica automáticamente al recuperar (para evitar la codificación URL, utilice setrawcookie() en su lugar).

¿Cómo recuperar el valor del Cookie?

La variable $_COOKIE de PHP se utiliza para recuperar el valor del cookie.

En el siguiente ejemplo, recuperamos el valor del cookie llamado "user" y lo mostramos en la página:

<?php
// Imprimir un cookie
echo $_COOKIE["user"];
// Una forma de ver todos los cookies
print_r($_COOKIE);
?>

En el siguiente ejemplo, utilizamos la función isset() para confirmar si se ha configurado el cookie:

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "¡Bienvenido " . $_COOKIE["user"] . "!\n";
else
  echo "¡Bienvenido invitado!\n";
?>
</body>
</html>

¿Cómo eliminar un cookie?

Al eliminar un cookie, debe cambiar la fecha de expiración a un punto de tiempo en el pasado.

Ejemplo de eliminación:

<?php 
// Establecer la fecha de expiración a una hora antes
setcookie("user", "", time()-3600);
?>

¿Qué hacer si el navegador no admite cookies?

Si su aplicación implica navegadores que no admiten cookies, tendrá que tomar otras medidas para transmitir información de una página a otra en la aplicación. Una manera es pasar datos desde el formulario (sobre formularios y entrada de usuarios, ya hemos introducido en este tutorial más temprano).

El siguiente formulario envía la entrada del usuario a "welcome.php" cuando el usuario hace clic en el botón de enviar:

<html>
<body>
<form action="welcome.php" method="post">
Nombre: <input type="text" name="name" />
Edad: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

Recupere los valores de "welcome.php", como así:

<html>
<body>
Bienvenido <?php echo $_POST["name"]; ?>.<br />
Tienes <?php echo $_POST["age"]; ?> años.
</body>
</html>