Lo básico que tienes que saber sobre las cookies PHP

Una cookie en php es un archivo de texto que se guarda en el pc del usuario que nos visita. Esto se realiza A petición del servidor web, y el navegador crea la cookie. Una vez ha ocurrido todo esto, el servidor puede leer, escribir y modificar el contenido de la cookie, pero no de la cookie de otro servidor. Para hacer todo esto, existen una serie de restricciones que hacen todo esto un proceso muy seguro:

  • Como ya hemos dicho, un servidor web solo puede modificar una cookie de su dominio.
  • Según el protocolo HTTP, las cookies tienen un limite de espacio que es de 4096 Bytes (4KB).
  • Existe un limite de cookies por dominio, son 20, aunque se puede modificar
  • Nunca te ha pasado que hay sesiones que se cierran, esto es porque tambien existe un limite de cookies, que un usuario puede tener. son unas 300 cookies

Cuando se crea cookies con php, esta tiene un limite de vida. esto se hace para evitar el robo de cookies, aun asi cuando se crea una cookie en php, le puedes decir que tenga 100 años de vida. Si la fecha de expiación está vacía, la cookie se eliminará cuando finalice la conexión con el servidor. Esto pasa cuando el usuario cierra la pestaña del navegador donde esta el sitio web, o simplemente cierre el navegador. Estas cookies, se llaman comúnmente session cookies, y se utilizan para guardar datos temporales de la sesión en concreto

Protocolo HTTP para crear cookies con php

Las cookies con php son creadas cada vez que son necesarias y el servidor lo pide, esto se hace utilizando el protocolo HTTP, un ejemplo de creacion de cookie seria

Set-Cookie: Name=Temporal; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=aprendizdeprogramadorweb.com/
  • Set-Cookie. Se hace la peticion para la creacion de la cookie.
  • Name. Nombre de la cookie.
  • expires. Indica la fecha de vencimiento de la cookie.
  • domain. Es el dominio donde será utilizada la cookie.
  • path. Es donde el servidor pondra la cookie, en este caso es en la raiz «/»

Crear y leer cookie en php

Las cookies se crean de varias maneras y con diferentes lenguajes.

Lo que tenemos que tener en consideracion y es lo mas importante para crear una cookie en PHP es que la cookie la tenemos que tener preparada antes de enviarla y que tiene que ser el primer dato que se envia. Esto incluye codificacion del archivo, cualquier tipo de etiqueta html, echo, print, etc.

$nombreCookie = 'usuario';
$valorCookie = 'Yo_Mismo';
// El tiempo de expiración es en 30 minutos. PHP traduce la fecha al formato adecuado
$expiracionCookie = time() + 60 * 30;
// Ruta y dominio
$rutaCookie = '/';
$dominioCookie = "aprendizdeprogramadorweb.com";
// Sólo envía la cookie con conexiónes HTTPs
$seguridadCookie = false;
// Cookies disponibles sólo para el protocolo HTTP
$solohttpCookie = true;
setcookie($nombreCookie, $valorCookie, $expiracionCookie, $rutaCookie, $dominioCookie, $seguridadCookie, $solohttpCookie);
echo "Cookie creada correctamente";

Las opciónes:

  • $seguridadCookie fuerza a que la cookie sólo sea creada si se ha establecido una conexión segura con el protocolo HTTPs.
  • $solohttp hace que la cookie sólo esté disponible para su uso en php a través de http, y evitara que la misma cookie se pueda modificar por javaScript

Las cookies se pueden ver con el navegador que estemos usando, en el aparatado de dev Tool

Para leer una cookie en php se usa un array llamado $_COOKIE[], Su uso es muy simple:

$valorCookie = $_COOKIE['usuario'];
echo $valorCookie; // Devuelve Yo_Mismo

Si se quiere modificar cualquier valor de una cookie en php como la fecha de expiración, path o dominio, la cookie la tenemos que reescribir con setcookie() y la sobreescribimos dandole el mismo nombre que la cookie original.

borrar cookie php

si quieres eliminar una cookies con php le damos una fecha ya pasada (por ejemplo time()-30*60), la cookie se eliminará.

Tags: