Knowledge Programación Entornos de Programación
Este material didáctico forma parte del Curso online de Programación en PHP

Las cookies en PHP

Crear una cookie

Para crear una cookie con una determinada información utilizaremos la siguiente sintaxis:

setcookie('nombre_cookie',valor,caducidad);

El parámetro caducidad de la función setcookie contendrá el timestampFecha expresada como el número de segundos transcurridos desde el 1 de enero de 1970 a las 0:00 UTC. en el cual la cookie caducará. Cuando el timestamp de la cookie sea menor al actual, la cookie dejará de ser accesible.

La siguiente instrucción generará una cookie llamada "usuario" que permanecerá vigente durante 90 días:

setcookie('usuario','Adolfo Sabater',time() + (60 * 60 * 24 * 90));

Recuperar el valor de una cookie

Para obtener el valor de una cookie utilizaremos un arrays ya predefinido en PHP para tal efecto:

$_COOKIE['nombre']

Utilizaremos como índice del array el nombre de la cookie que queramos consultar y usaremos este elemento del array para recuperar su valor.

Veamos un ejemplo de funcionamiento:

Tenemos el siguiente script llamado crear_cookie.php
<?php
     setcookie('micookie','Cookie creada',time() + (60*60*24*365));
?>
Por otro lado tenemos el siguiente script llamado comprobar_cookie.php
<?php
     echo $_COOKIE['micookie'];
?>
Si llamamos a comprobar_cookie.php después de haber abierto en algún momento del último año crear_cookie.php producirá la siguiente salida:
Cookie creada 
Cookies

Eliminar una cookie

Para eliminar una cookie, simplemente debemos forzarla a caducar estableciendo su caducidad a un timestamp pasado.

Podemos usar la siguiente sintaxis:

setcookie('nombre_cookie','',time() - 1);

En cuanto ejecutemos la instrucción anterior, la cookie será destruida.

Ámbito de las cookies

Por defecto, las cookies sólo estarán disponibles para el dominio desde el cual se crearon y el directorio dentro del dominio en el que se encuentra el script que las creó.

No obstante, podemos extender el ámbito desde el cual es accesible una cookie con un par de parámetros extra de la función setcookie. Su sintaxis es la siguiente:

setcookie('nombre_cookie',valor,caducidad,directorio,dominio);

El parámetro directorio indica el directorio que tendrá acceso a la cookie. Todos los scripts contenidos en el directorio especificado y en sus subdirectorios, podrán leer la cookie. Si queremos que todos los directorios tengan acceso a la cookie, estableceremos el valor '/'.

El parámetro dominio indica el dominio que tendrá acceso a la cookie. Por lo general se usa cuando estamos trabajando con subdominios para restringir o ampliar su uso a uno de ellos. Todos los subdominios del dominio indicado podrán leer la cookie. Si queremos que todos los subdominios de mi dominio tengan acceso a la cookie, estableceremos el valor 'nombrededominio.com' sin indicar www. delante ni ningún otro subdominio que pueda restringir el acceso.

En un script de PHP se ejecuta la siguiente instrucción:

setcookie('idioma','es',time() + (60*60*24*90),'/catalogo','privado.example.com');

Veamos cuales de los siguientes scripts podrían leer el valor de la cookie:

Script de PHP Acceso
http://privado.example.com/catalogo/script.php
http://privado.example.com/catalogo/articulo1/script.php
http://www.example.com/catalogo/script.php No
http://privado.example.com/script.php No
http://seguro.privado.example.com/catalogo/script.php

Si deseásemos que todas las URL anteriores tuviesen acceso a las cookies, utilizaríamos la siguiente sintaxis:

setcookie('idioma','es',time() + (60*60*24*90),'/','example.com');

 

Este contenido didáctico abierto está extraído del Curso online de Programación en PHP.

Amplía tus conocimientos con el Curso Online de Programación en PHP

Puedes continuar ahora la formación matriculándote en el curso, o si lo prefieres, consultar nuestro catálogo con cerca de 400 actividades formativas acreditadas.

Benefíciate del crédito para formación bonificando el curso.

Este sitio web utiliza cookies de terceros con la finalidad de analizar el uso que hace de nuestra web y personalizar el contenido de los anuncios. Si continúa navegando entendemos que acepta su uso. Más información