Manejar las cookies en PHP
Crear una cookie
Para crear una cookie con una determinada información utilizaremos la siguiente sintaxis:
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:
Recuperar el valor de una cookie
Para obtener el valor de una cookie utilizaremos un arrays ya predefinido en PHP para tal efecto:
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:
Eliminar una cookie
Para eliminar una cookie, simplemente debemos forzarla a caducar estableciendo su caducidad a un timestamp pasado.
Podemos usar la siguiente sintaxis:
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:
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:
Veamos cuales de los siguientes scripts podrían leer el valor de la cookie:
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: