Diferencia entre revisiones de «Plantilla:PHP/Cookies»
De WikiEducator
(Página creada con « ===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. *Con esto podemos...») |
|||
Línea 1: | Línea 1: | ||
− | + | <div class=parrafo> | |
===Qué es una Cookie=== | ===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 va a ser cantidad de información que almacena preferencias de un usuario. | |
− | + | 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). | |
− | + | 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. | |
− | + | {{Tip|Como se guardan en el cliente, se necesita confirmación expresa del cliente para dejar que se almacenen cosas en su equipo}} | |
− | *En general no se debe de abusar de ellas | + | {{MRM_Recursos de la Web|Title=Legislación sobre las '''''cookies'''''| |
− | + | *Es muy importante respetar sobre la legislación en el uso de cookies | |
− | + | *Básicamente consiste en que hay que avisar al cliente de que se están utilizando | |
− | + | *En cualquier caso conviene estar al día. | |
− | + | 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 | ||
+ | {{MRM_Puntos clave|Title=Puntos a tener claros| | ||
+ | ;El servidor es quien solicita la creación del coockie en el cliente | ||
+ | ;El cliente crea un fichero con dicha información | ||
+ | ;Una vez creada, solo puede ser leída por el sitio web que la creó. | ||
+ | ;Para trabajar con cookies tenemos que hacer dos cosas | ||
#Almacenar o crear la cookie | #Almacenar o crear la cookie | ||
#Poder leerla en un momento determinado | #Poder leerla en un momento determinado | ||
+ | *El tamaño máximo de un cookie está limitado a 4K. | ||
+ | }} | ||
====Crear una coockie==== | ====Crear una coockie==== | ||
*Para ello usaremos la función '''''setCookie(...)''''' | *Para ello usaremos la función '''''setCookie(...)''''' | ||
Línea 37: | Línea 45: | ||
====Borrar una cookie==== | ====Borrar una cookie==== | ||
*Para borrar la cookie usamos la función setcookie con un tiempo negativo | *Para borrar la cookie usamos la función setcookie con un tiempo negativo | ||
+ | {{Tip|Tener en cuenta que el tiempo es respecto al segundo o UNIX}} | ||
<source lang="php"> | <source lang="php"> | ||
<?php | <?php | ||
Línea 43: | Línea 52: | ||
?> | ?> | ||
</source> | </source> | ||
− | {{ | + | {{MRM_Actividad|Title= Información sobre visitas| |
− | + | [[Usuario:ManuelRomero/ProgramacionWeb/php/Aut_Ses_Coo/ejercicios&action=edit#Almacenar el momento de las visitas a una página| Cookies con información de visitas]] | |
− | + | }} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
− | + | {{MRM_Resumen| | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
==Creación de coockies== | ==Creación de coockies== | ||
<source lang="php"> | <source lang="php"> | ||
Línea 113: | Línea 91: | ||
</source> | </source> | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Coockies con array=== | ===Coockies con array=== | ||
Línea 169: | Línea 127: | ||
</source> | </source> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | {{Lectura|Title=Administrar cookies en diferentes navegadores| | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | {{Lectura|Title=Administrar cookies en diferentes navegadores| | + | |
*'''''Firefox''''' http://support.mozilla.org/es/kb/Borrar%20cookies?esab=a&s=cookies&r=2&as=s | *'''''Firefox''''' http://support.mozilla.org/es/kb/Borrar%20cookies?esab=a&s=cookies&r=2&as=s | ||
*'''''Chrome/Chromium''''': http://support.google.com/chrome/bin/answer.py?hl=es&answer=95647 | *'''''Chrome/Chromium''''': http://support.google.com/chrome/bin/answer.py?hl=es&answer=95647 | ||
Línea 333: | Línea 134: | ||
*'''''Opera''''': http://help.opera.com/Windows/11.50/es-ES/cookies.html | *'''''Opera''''': http://help.opera.com/Windows/11.50/es-ES/cookies.html | ||
*'''''Safari''''': http://support.apple.com/kb/ph5042 | *'''''Safari''''': http://support.apple.com/kb/ph5042 | ||
+ | }} | ||
+ | </div> |
Revisión de 02:23 23 dic 2016
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 va a ser cantidad de información que almacena preferencias de un usuario. 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). 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.
Tip: Como se guardan en el cliente, se necesita confirmación expresa del cliente para dejar que se almacenen cosas en su equipo
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
|
Crear una coockie
- Para ello usaremos la función setCookie(...)
- 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.
- Para recuperar los datos anteriores
$usuario = $_COOKIE['usuario'];
Borrar una cookie
- Para borrar la cookie usamos la función setcookie con un tiempo negativo
Tip: Tener en cuenta que el tiempo es respecto al segundo o UNIX
<?php // Ponemos un tiempo de expiración negativo setcookie("user", "", time()-3600); ?>
Cookies con información de visitas
|
Creación de coockies<?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); ?> Ver el valor de una cookie<?php // Ver una cookie concreta echo $_COOKIE["user"]; // Para ver todas las cookies print_r($_COOKIE); ?> Borrado<?php // Ponemos un tiempo negativo setcookie("user", "", time()-3600); ?> |
Coockies con array
- En este caso la cookie en lugar de contener un solo valor va a contener un array
- A la hora de leer la cookie se hace igual que hasta ahora
- Supongamos que tenemos varias cookies, dependiendo del usuario que se ha conectado
- De cada uno de esos usuarios tendríamos los accesos que ha realizado en un array indexado indicando la hora
- Leemos la cookie
<?php .... $usuario = $_POST['usuario'] ...... //Leemos la cookie que es un array de accesos $arrayAccesos = $_COOKIE[$usuario]; .....
- Guardar la cookie
- Esto crea el plateamiento de como guardar la cookie a la hora de qué nombre va a tener esta cookie
- Es como que en la misma cookie queremos guardar muchos valores, pero en realidad guardamos uno solo que es el array
- Una manera de hacerlo es incorporar a la cookie ya guardada el nuevo índice
- Para ello una manera de hacerlo es obtener el valor del indice del nuevo elemento obteniendo el tamaño del vector hasta ahora
- Incorporamos en la posición correspondiente el nuevo valor
.... $usuario = $_POST['usuario'] ...... //Leemos la cookie que es un array de accesos $arrayAccesos = $_COOKIE[$usuario]; ..... //Ahora ya puedo obtener el tamaño del vector $indice = count($arrayAccesos); //Con este valor añado la nueva entrada setCookie($usuario.'['.$indice.']',time(),time()+3600 .....