Usuario:ManuelRomero/ProgramacionWeb/php/Aut Ses Coo/Cookies
¿Qué es una Cookie?
- Una cookie es un pequeño fragmento de datos que un servidor web envía al navegador del usuario para que éste lo almacene.
- Sirve para guardar información relacionada con el cliente o con sus preferencias en relación con un sitio web.
CookieUna cookie es un pequeño fichero de datos que se almacena en el cliente (navegador) y que guarda información asociada a un determinado sitio web.
- Una vez que el cliente almacena una cookie, cada vez que realice una solicitud al mismo servidor enviará automáticamente las cookies asociadas a ese sitio.
(
:
Un cliente es normalmente un navegador u otra aplicación capaz de realizar peticiones HTTP a un servidor.
)
- Las cookies permiten mantener cierta información entre distintas visitas a un sitio web, ayudando a gestionar el estado en aplicaciones web.
Tip:Como las cookies se almacenan en el cliente, la legislación obliga a informar al usuario y obtener su consentimiento antes de almacenarlas en muchos casos.
Legislación sobre las cookies- Es fundamental cumplir con la legislación vigente sobre el uso de cookies.
- La legislación exige informar al usuario sobre su utilización y obtener su consentimiento explícito antes de almacenarlas (especialmente cookies no técnicas).
- Cuando escribimos cookies estamos utilizando recursos del cliente (su navegador y almacenamiento local).
- Conviene mantenerse actualizado sobre la normativa aplicable.
http://www.agpd.es/portalwebAGPD/canaldocumentacion/publicaciones/common/Guias/Guia_Cookies.pdf
- En general no se debe abusar del uso de cookies.
- Además, algunos usuarios pueden tenerlas deshabilitadas, lo que puede impedir que ciertas funcionalidades de la aplicación funcionen correctamente.
- Por ello conviene que una aplicación web no dependa exclusivamente de cookies para su funcionamiento esencial.
Ciclo de vida de la cookie
- Veamos el proceso detallado
Servidor entrega el recurso- El servidor responde enviando el recurso solicitado.
- Junto con la respuesta puede incluir instrucciones para crear cookies mediante la cabecera HTTP Set-Cookie.
- El navegador almacenará esas cookies localmente.
- Las cookies se pueden visualizar en el navegador.
Puntos a tener claros
- Puntos clave sobre las cookies
- El servidor solicita al navegador la creación de una cookie.
- El navegador guarda la cookie en su almacenamiento local.
- En cada petición posterior al mismo dominio, el navegador enviará automáticamente esa cookie.
- Solo el sitio web que creó la cookie puede leerla.
- Para trabajar con cookies desde el servidor debemos:
1. Crear o enviar la cookie al cliente. 2. Leer su contenido cuando el navegador la envíe en una petición.
- El tamaño máximo habitual de una cookie es de aproximadamente 4 KB.
Tamaño de las Cookies
- En la mayoría de los navegadores modernos, el tamaño máximo de una cookie individual está limitado a aproximadamente 4096 bytes (4 KB).
- Este tamaño incluye el nombre, el valor y algunos metadatos asociados.
- Los navegadores suelen permitir entre 20 y 50 cookies por dominio.
- El tamaño total de todas las cookies combinadas para un mismo dominio suele estar limitado aproximadamente a 50 KB.
- Aunque 4 KB es el límite más común, algunos navegadores pueden tener límites ligeramente diferentes.
Crear una cookie
- Para crear una cookie en PHP utilizamos la función setcookie().
setcookie(nombre_cookie, valor_cookie, tiempo_vida);
- Esta función puede recibir hasta 7 parámetros, aunque normalmente se utilizan los tres primeros.
http://es.php.net/manual/es/function.setcookie.php
Parámetros más habituales:
- Nombre de la cookie
- Valor que almacenamos
- Tiempo de expiración
- El tiempo de expiración se expresa como una marca temporal UNIX.
Por ejemplo, para almacenar el nombre de usuario durante una hora:
setcookie("usuario", $_SERVER['PHP_AUTH_USER'], time()+3600);
- Es importante recordar que las cookies deben enviarse antes de que se envíe cualquier contenido HTML al navegador, igual que ocurre con la función header().
Recuperar la cookie
- Cuando el navegador accede a un sitio web, envía automáticamente todas las cookies asociadas a ese dominio.
- Desde PHP podemos acceder a ellas mediante el array $_COOKIE.
$usuario = $_COOKIE['usuario'];
También podemos comprobar si existe una cookie antes de utilizarla:
if(isset($_COOKIE['usuario'])){ $usuario = $_COOKIE['usuario']; }
Borrar una cookie
- Para eliminar una cookie se envía nuevamente con una fecha de expiración pasada.
Tip: El tiempo utilizado es una marca temporal UNIX
<?php setcookie("user", "", time()-3600); ?>
Información sobre visitasCookies con información de visitas
Objetivo- Creación de cookies
<?php $expire = time()+60*60*24*30; // cookie de 30 días setcookie("user", "Alex Porter", $expire); ?>
- Cookie de sesión (se elimina al cerrar el navegador)
<?php setcookie("user", "Alex Porter", 0); ?>
- Leer cookies
<?php // Ver una cookie concreta echo $_COOKIE["user"]; // Ver todas las cookies print_r($_COOKIE); ?>
- Borrar cookies
<?php setcookie("user", "", time()-3600); ?>
