|
|
| Línea 1: |
Línea 1: |
| | {{:Usuario:ManuelRomero/ProgramacionWeb/Authentificacion/nav}} | | {{:Usuario:ManuelRomero/ProgramacionWeb/Authentificacion/nav}} |
| | + | {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:2px; border-color:#0066FF;" |
| | + | | width="100%" valign="top" style="padding: 0; margin:0px;" | |
| | + | {|cellpadding="5" cellspacing="6" style="width:100%;background:#DFFFFF; border-style:solid; border-width:1px; border-color:#0066FF;" |
| | + | | width="100%" valign="top" style="padding: 0; margin:0px;" | |
| | + | <span style="background:#FFFF99"> |
| | + | </span> |
| | + | [[Imagen:DWES_TituloTema7_3.png |center]] |
| | + | |} |
| | + | __TOC__ |
| | + | {{PHP/Cookies}} |
| | + | |} |
Revisión de 20:35 10 dic 2019
BLOQUE 2 PHP: PROGRAMACIÓN ORIENTADO A OBJETOS
¡Construyendo componentes!
PHP Como lenguaje orientado a objetos
¿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.
Cookie
|
Una 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
Usuario solicita un recurso web
- El usuario solicita un recurso en la web a un servidor concreto.
|
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.
Localiza tus cookies
|
Busca las cookies en tu navegador y comprueba su nombre, valor y el dominio que las creó.



|
|
La cookie queda almacenada en el cliente
- Si observamos las cookies del navegador veremos cómo el servidor ha escrito esa información.
- Cada cookie queda asociada al dominio que la creó.
|
Usuario solicita otro recurso
- El usuario vuelve a solicitar un recurso al mismo servidor.
- En este caso, junto con la solicitud HTTP se enviarán automáticamente las cookies asociadas a ese dominio.
- El navegador solo enviará las cookies correspondientes al dominio que las creó.
|
Servidor procesa las cookies
- El servidor puede analizar los valores de las cookies enviadas por el cliente.
- Con esta información puede personalizar el contenido enviado al usuario.
|
- 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.
|
|
- 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);
?>
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);
?>
|
|