Diferencia entre revisiones de «Plantilla:PHP/Cookies»
(→Borrar una cookie) |
|||
(2 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 51: | Línea 51: | ||
;En este caso, junto con la solicitud se enviarán todas las cookies que ese servidor hubiera escrito en este cliente | ;En este caso, junto con la solicitud se enviarán todas las cookies que ese servidor hubiera escrito en este cliente | ||
;Solo las que ha escrito ese servidor | ;Solo las que ha escrito ese servidor | ||
− | [[Archivo: | + | [[Archivo:solicitud_cliente_2.png|800px]] |
}} | }} | ||
{{MRM_Actividad|Title=Servidor entrega recurso| | {{MRM_Actividad|Title=Servidor entrega recurso| | ||
;Ahora el servidor puede analizar los valores de las cookies | ;Ahora el servidor puede analizar los valores de las cookies | ||
;En función de esos valores podrá personalizar la página a ese cliente | ;En función de esos valores podrá personalizar la página a ese cliente | ||
− | [[Archivo: | + | [[Archivo:servidor_entrega_con_cookie.png|800px]] |
}} | }} | ||
Línea 71: | Línea 71: | ||
}} | }} | ||
====Crear una coockie==== | ====Crear una coockie==== | ||
− | *Para ello usaremos la función ''''' | + | *Para ello usaremos la función '''''setcookie(...)''''' |
<source lang=php> | <source lang=php> | ||
setcookie(Nombre_cookie,Valor_Coookie, tiempo_vida); | setcookie(Nombre_cookie,Valor_Coookie, tiempo_vida); |
Última revisión de 05:31 24 may 2023
Contenido
Qué es una Cookie
- Una cookie es una pequeña cantidad de datos almacenada por el navegador del usuario cuando solicita una página a un servidor. *Básicamente consiste en una cantidad de información que almacena preferencias de un usuario.
Una Cookie' es un fichero que se almacena en el cliente y guarda información de ese cliente en referencia a una determinada sitio web. |
Una vez que el cliente almacena ese valor, la próxima vez que ese cliente (una ip y un navegador), haga una solicitud a ese servidor, le enviará también todas las cookies que tenga de ese servidor.
En parte se podría pensar que con esta técnica podemos suplir la característica de que http es un protocolo sin estado (Insistir en que esto es una característica del protocolo, no una limitación), y mantener información después de la visita a un sitio web.
http://www.agpd.es/portalwebAGPD/canaldocumentacion/publicaciones/common/Guias/Guia_Cookies.pdf |
- En general no se debe de abusar de ellas; hay que tener en cuenta que en muchos las pueden tener deshabilitadas y esto puede impedir que nuestra aplicación web se ejecute de forma eficiente o incluso correcta. Por ello no debería de ocurrir que una aplicación web dependiera de los valores de cookies para funcionar de forma correcta.
Ciclo de vida de la cookie
- Veamos el proceso detallado
|
|
Crear una coockie
- Para ello usaremos la función setcookie(...)
setcookie(Nombre_cookie,Valor_Coookie, tiempo_vida);
- En esta función puede recibir hasta 7 parámetros, (sólo el primero es obligatorio).
http://es.php.net/manual/es/function.setcookie.php
- Es habitual usar los tres primeros que serían
- Nombre de la cookie
- Valor que almacenamos en ella
- Tiempo de expiración: es un entero en segundos. Si no se especifica, la cookie termiará junto a esta sesión.
- Por ejemplo si quieremos almacenar el usuario y que tenga un tiempo de duración de 1 hora
setcookie("usuario", $_SERVER['PHP_AUTH_USER'], time()+3600);
- Importante el envío de cookies al cliente ha de hacerse antes de que se escriba nada en html, igual que las funciones header.
Recuperar la cookie
- El proceso de recuperación de la información que almacena una cookie es muy simple.
- Cuando accedes a un sitio web, el navegador (cliente), le envía de forma automática todo el contenido de las cookies que almacene relativas a ese sitio en concreto (servidor).
- Desde PHP se puede acceder a esta información por medio del array $_COOKIE.
$usuario = $_COOKIE[nombre_cookie];
- Para recuperar los datos anteriores
$usuario = $_COOKIE['usuario'];
Borrar una cookie
- Para borrar la cookie usamos la función setcookie con un tiempo negativo
<?php // Ponemos un tiempo de expiración negativo setcookie("user", "", time()-3600); ?>
Cookies con información de visitas
|
<?php $expire = time()+60*60*24*30 //La coockie durará un mes setcookie("user", "Alex Porter", $expire); ?>
<?php $expire = =; //La coockie durará lo que dure la sesión setcookie("user", "Alex Porter", $expire); ?>
<?php // Ver una cookie concreta echo $_COOKIE["user"]; // Para ver todas las cookies print_r($_COOKIE); ?>
<?php // Ponemos un tiempo negativo setcookie("user", "", time()-3600); ?> |