Usar cookies con PHP

Como desarrollador de un sitio web, puede usar PHP para configurar cookies que contienen información sobre los visitantes de su sitio web. Las cookies almacenan información sobre un visitante del sitio en la computadora del visitante a la que se puede acceder en una visita de regreso. Un uso común de las cookies es almacenar un token de acceso para que el usuario no necesite iniciar sesión cada vez que visita su sitio web. Las cookies también pueden almacenar otra información, como el nombre del usuario, la fecha de la última visita y el contenido del carrito de compras..

Aunque las cookies existen desde hace años y la mayoría de las personas las tienen habilitadas, algunos usuarios no las aceptan por motivos de privacidad o las eliminan automáticamente cuando se cierra su sesión de navegación. Debido a que las cookies pueden ser eliminadas por un usuario en cualquier momento y se almacenan en un formato de texto sin formato, no las use para almacenar nada sensible.

Cómo configurar una cookie usando PHP

En PHP, el setcookie () La función define una cookie. Se envía junto con los otros encabezados HTTP y se transmite antes de analizar el cuerpo del HTML.

Una cookie sigue la sintaxis:

setcookie (nombre, valor, caducidad, ruta, dominio, seguro, httponly);

dónde nombre denota el nombre de la cookie y valor describe el contenido de la cookie. Para el setcookie () función, solo el nombre Se requiere parámetro. Todos los demás parámetros son opcionales.. 

Cookie de ejemplo

Para configurar una cookie llamada "UserVisit" en el navegador del visitante que establezca el valor en la fecha actual, y establezca además el vencimiento en 30 días (2592000 = 60 segundos * 60 minutos * 24 horas * 30 días), use lo siguiente Código PHP:

$ Mes = 2592000 + tiempo ();
// esto agrega 30 días a la hora actual
setcookie (UserVisit, fecha ("F jS - g: i a"), $ Mes);
?>

Las cookies deben enviarse antes de que se envíe HTML a la página o no funcionan, por lo que setcookie () la función debe aparecer antes de etiqueta.

Cómo recuperar una cookie usando PHP

Para recuperar una cookie de la computadora del usuario en la próxima visita, llámela con el siguiente código:

if (isset ($ _ COOKIE ['UserVisit']))

$ last = $ _COOKIE ['UserVisit'];
echo "Bienvenido de nuevo!
Visitaste por última vez en ". $ Last;

más

echo "¡Bienvenido a nuestro sitio!";

?>

Este código primero verifica si la cookie existe. Si lo hace, le da la bienvenida al usuario y anuncia cuándo fue la última vez que lo visitó. Si el usuario es nuevo, imprime un mensaje de bienvenida genérico.

PROPINA: Si está llamando una cookie en la misma página que planea establecer una, recupérela antes de sobrescribirla.

Cómo destruir una galleta

Para destruir una cookie, use setcookie () de nuevo pero establezca la fecha de vencimiento en el pasado:

$ pasado = tiempo () - 10;
// esto hace el tiempo hace 10 segundos
setcookie (UserVisit, fecha ("F jS - g: i a"), $ pasado);
?>

Parámetros opcionales

Además de valor y expirar, el setcookie () La función admite varios otros parámetros opcionales:

  • Camino identifica la ruta del servidor de la cookie. Si lo configura en "/", la cookie estará disponible para todo el dominio. De forma predeterminada, la cookie funciona en el directorio en el que está configurada, pero puede forzarla a funcionar en otros directorios al especificarlos con este parámetro. Esta función se conecta en cascada, por lo que todos los subdirectorios dentro de un directorio específico también tendrán acceso a la cookie.
  • Dominio   identifica el dominio específico en el que funciona la cookie. Para que la cookie funcione en todos los subdominios, especifique explícitamente el dominio de nivel superior (por ejemplo, "sample.com"). Si configura el dominio en "www.sample.com", la cookie solo está disponible en el subdominio www.
  • Seguro especifica si la cookie debe transmitirse a través de una conexión segura. Si este valor se establece en TRUE, la cookie se establecerá solo para conexiones HTTPS. El valor predeterminado es FALSO.
  • Httponly , cuando se establece en TRUE, solo permitirá el acceso a la cookie mediante el protocolo HTTP. Por defecto, el valor es FALSO. El beneficio de configurar la cookie en VERDADERO es que los lenguajes de script no pueden acceder a la cookie.