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));
Para obtener el valor de una cookie utilizaremos un array 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
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.
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 | Sí |
| http://privado.example.com/catalogo/articulo1/script.php | Sí |
| http://www.example.com/catalogo/script.php | No |
| http://privado.example.com/script.php | No |
| http://seguro.privado.example.com/catalogo/script.php | Sí |
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'); Aprovecha lo que ya has aprendido y completa tu formación en el curso de Programación en PHP: desarrollo de aplicaciones web dinámicas
Este sitio utiliza cookies propias y de terceros con fines analíticos anónimos, para guardar tus preferencias y garantizar el correcto funcionamiento del sitio web.
Puedes aceptar todas las cookies, rechazarlas o configurarlas según tus preferencias utilizando los botones correspondientes.
Puedes obtener más información y volver a configurar tus preferencias en cualquier momento en la Política de cookies