Crear cookies en Php
En el siguiente tutorial aprenderemos cómo crear cookies en PHP de manera fácil.
Una Cookie es un pequeño fragmento de texto que, cuando visitamos un sitio web, se copia en el navegador, normalmente para que dicho sitio web recuerde la información sobre nuestra visita.
¿Qué datos se pueden guardar en una Cookie?
Las cookies pueden almacenar datos de usuario, preferencias, hasta un máximo de 4093 caracteres por cada una. Sólo se pueden almacenar hasta 20 cookies por dominio.
Los navegadores sólo pueden almacenar hasta 300 cookies, a partir de ahí comenzará a borrar las más antiguas.
¿Dónde se deben crear las cookies?
Se deben generar antes de que el navegador procese código html por lo que lo habitual es crearlas antes del doctype.
Para crear una cookie usaremos la función setcookie a la que le pasaremos los datos mediante parámetros
//Creación de una cookie básica
setcookie("nombreCookie","valorCookie");
Con el código anterior ya tendremos creada una cookie con el nombre «nombreCookie» y el contenido «valorCookie».
Parámetros de una cookie
Podemos pasarle más parámetros, todos ellos opcionales
Duración (expire)
Indicará la duración de la cookie, el tiempo que tardará en destruirse. Por defecto si no lo ponemos la cookie se destruirá al cerrar el navegador.
//Cookie que se destruirá en 120 segundos
setcookie("galleta","Hola",time() + 120);
En el ejemplo anterior time() representa la fecha unix actual, se le debe sumar en segundos el tiempo que queremos que dure la cookie. Al pasar ese tiempo se destruirá.
Ruta (path)
Si no ponemos la ruta (Path), la cookie sólo se puede usar en páginas que se encuentren en el mismo directorio que la página que la creó. Si queremos que se utilice en un directorio en concreto debemos añadir la ruta
//Cookie creada en el directorio /registro/login
//Si queremos que las páginas del directorio raíz / puedan acceder a la cookie
setcookie("galleta","Hola",time() + 3600, "/");
Dominio (domain)
El subdominio donde se pueda acceder a la cookie. Por defecto sólo se pueden utilizar en el dominio de la página donde se crea, pero podemos hacer que sea visible en todos los subdominios pasándole como parámetro «.nombreDelDominio.com» por ejemplo. El nombre del dominio debe indicarse con un punto.
setcookie("galleta", "Hola", time()+3000, "/", ".tutobasico.com");
Protocolo Seguro (secure)
Mediante este parámetro (true o false) le indicamos si la cookie puede transmitirse por protocolo https. Por defecto está en false.
setcookie("galleta", "Hola", time()+3000, "/", ".tutobasico.com", true);
Sólo Http (httponly)
Especifica si la cookie va a ser accesible sólo desde el protocolo http y no por los lenguajes de script. Por defecto estárá false.
setcookie("galleta", "Hola", time()+3000, "/", ".tutobasico.com", true, true);
Debemos recordar que aunque los parámetros son opcionales, lo son de izquierda a derecha, es decir, para poner uno debemos poner los anteriores, sinó dará un error.
Ejemplo
//SI QUEREMOS PONER PROTOCOLO SEGURO, NO PODEMOS HACER ESTO
setcookie("galleta", "Hola", time()+3000, true, true);
//DEBEMOS PONER TODOS LOS ANTERIORES DE ESTE MODO
setcookie("galleta", "Hola", time()+3000, "/", ".tutobasico.com", true, true);
¿Cómo recuperamos el contenido de una cookie?
Para recuperar el contenido de una cookie se utiliza un Array predefinido $_COOKIE. Se utiliza como un Array asociativo (clave valor).
//Primero crearemos una cookie con el nombre "galleta" y el valor "Juan"
setcookie("galleta", "Juan");
//Accedemos a la cookie con $_COOKIE y el nombre de la cookie
$contenido = $_COOKIE["galleta"]; //$contenido vale Juan
¿Cómo borramos una cookie?
Las cookies se pueden borrar desde todos los navegadores accediendo a la configuración, pero lo que nos interesa es aprender a borrarlas mediante Php.
Realmente no hay una función definida que borre una cookie, lo que haremos será crear una cookie nueva con el mismo nombre pero con el tiempo ya expirado, es decir, con la fecha de expiración en el pasado
Veamos un ejemplo
//Creamos la primera cookie
setcookie("galleta", "Juan", time() + 3600);
//Ahora la volvemos a crear con el tiempo expirado. Así se elimina
setcookie("galleta", "Juan", time() - 10);
Si te ha gustado no olvides compartir en redes sociales.
[addthis tool=»addthis_inline_share_toolbox_6jt6″]
Espero que te haya servido. Cualquier duda deja un comentario. Un saludo