110 lines
3.0 KiB
Markdown
110 lines
3.0 KiB
Markdown
---
|
|
title: PHP Cookies
|
|
localeTitle: Cookies de PHP
|
|
---
|
|
# Galletas de PHP
|
|
|
|
## ¿Qué es una cookie?
|
|
|
|
Una cookie se utiliza a menudo para identificar a un usuario. Es un archivo pequeño que el servidor inserta en la computadora del usuario. Cada vez que la misma computadora solicite una página con un navegador, también enviará la cookie.
|
|
Las cookies fueron diseñadas para ser un mecanismo confiable para recordar información de estado o para registrar la actividad de navegación del usuario.
|
|
También se pueden usar para recordar datos arbitrarios que el usuario ingresó previamente en campos de formulario como nombres, direcciones, contraseñas, etc.
|
|
|
|
## Creando Cookies con PHP
|
|
|
|
Con PHP, puede crear y recuperar valores de cookies. Se crea una cookie con la función setcookie ().
|
|
|
|
`setcookie(name, value, expire, path, domain, secure, httponly);`
|
|
|
|
Sólo el parámetro de _nombre_ es un parámetro requerido. Todos los demás parámetros son opcionales.
|
|
|
|
## PHP Crear / Recuperar una cookie
|
|
|
|
El siguiente ejemplo crea una cookie llamada "usuario" con el valor "John Doe".
|
|
La cookie expirará después de 30 días (86400 \* 30).
|
|
La "/" significa que la cookie está disponible en todo el sitio web (de lo contrario, puede seleccionar el directorio que prefiera).
|
|
Luego recuperamos el valor de la cookie "usuario" (utilizando la variable global $ \_COOKIE).
|
|
También usamos la función isset () para averiguar si la cookie está configurada:
|
|
|
|
**Ejemplo:**
|
|
```
|
|
<?php
|
|
$cookie_name = "user";
|
|
$cookie_value = "John Doe";
|
|
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
|
|
?>
|
|
<html>
|
|
<body>
|
|
|
|
<?php
|
|
if(!isset($_COOKIE[$cookie_name])) {
|
|
echo "Cookie named '" . $cookie_name . "' is not set!";
|
|
} else {
|
|
echo "Cookie '" . $cookie_name . "' is set!<br>";
|
|
echo "Value is: " . $_COOKIE[$cookie_name];
|
|
}
|
|
?>
|
|
</body>
|
|
</html>
|
|
```
|
|
|
|
**Nota: la** función setcookie () debe aparecer **ANTES de** la etiqueta.
|
|
|
|
Salida:
|
|
Cookie 'usuario' está configurado!
|
|
El valor es: John Doe
|
|
|
|
## PHP modifica un valor de cookie
|
|
|
|
Para modificar una cookie, simplemente establezca el valor nuevamente usando la función setcookie ():
|
|
|
|
**Ejemplo:**
|
|
```
|
|
<?php
|
|
$cookie_name = "user";
|
|
$cookie_value = "Jane Porter";
|
|
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
|
|
?>
|
|
<html>
|
|
<body>
|
|
|
|
<?php
|
|
if(!isset($_COOKIE[$cookie_name])) {
|
|
echo "Cookie named '" . $cookie_name . "' is not set!";
|
|
} else {
|
|
echo "Cookie '" . $cookie_name . "' is set!<br>";
|
|
echo "Value is: " . $_COOKIE[$cookie_name];
|
|
}
|
|
?>
|
|
|
|
</body>
|
|
</html>
|
|
```
|
|
|
|
Salida:
|
|
Cookie 'usuario' está configurado!
|
|
El valor es: Alex Porter
|
|
|
|
## PHP Eliminar una cookie
|
|
|
|
Para eliminar una cookie, use la función setcookie () con una fecha de caducidad en el pasado:
|
|
|
|
**Ejemplo:**
|
|
```
|
|
<?php
|
|
// set the expiration date to one hour ago
|
|
setcookie("user", "", time() - 3600);
|
|
?>
|
|
<html>
|
|
<body>
|
|
|
|
<?php
|
|
echo "Cookie 'user' is deleted.";
|
|
?>
|
|
|
|
</body>
|
|
</html>
|
|
```
|
|
|
|
Salida:
|
|
Se elimina el "usuario" de la cookie. |