Knowledge center Programación Entornos de programación

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 timestamp 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');

 

Esta píldora formativa está extraída del Curso online de Programación en PHP.

¿Te gusta el contenido de esta píldora de conocimiento?

No pierdas tu oportunidad y ¡continúa aprendiendo!

Política de privacidad

ADR Formación utiliza cookies propias y de terceros para fines analíticos anónimos, guardar las preferencias que selecciones y para el funcionamiento general de la página.

Puedes aceptar todas las cookies pulsando el botón "Aceptar" o configurarlas o rechazar su uso pulsando el botón "Configurar".

Puedes obtener más información y volver a configurar tus preferencias en cualquier momento en la Política de cookies