Capítulo 4. Cookies.

Capítulo 4. Cookies.

Las Cookies nos permiten almacenar información en el ordenador del usuario y de esta forma identificar al usuario cuando vuelva a conectarse.

Un ejemplo de cuando podemos usar las cookies es en una página que está en varios idiomas. Al seleccionar el usuario el idioma en el que quiere ver la página esto se almacena en una cookie y la próxima vez que visite la página se irá a la página en el idioma que se seleccionó anteriormente.

Veamos la sintaxis de la función que nos permite almacenar una cookie:

bool setcookie ( string nombre [, string valor [, int expirar
[, string ruta [, string dominio [, bool segura]]]]] )

Como podemos ver se trata de una función que devuelve un valor booleano. Si existe salida antes de llamar esta función, setcookie() fallará y devolverá FALSE. Si setcookie() se ejecuta con éxito, devolverá TRUE. Esto no indica si el usuario aceptó la cookie.

Las cookies deben ser enviadas antes de cualquier salida (ésta es una restricción de protocolo). Esto requiere que coloque las llamadas a esta función antes de cualquier salida, incluyendo las etiquetas <html> y <head> así como cualquier espacio en blanco.

Antes de pasar a explicar sus argumentos obsérvese que sólo es obligatorio el primer argumento: el «nombre» de la cookie.
– nombre – Nombre de la cookie.
– valor – Valor que contendrá la cookie.
– expirar – La hora en la que expira la cookie. Este valor es una marca de tiempo Unix en segundos, es decir, para que la cookie expire dentro de 30 minutos deberemos ponerle el valor: time() + 30 * 60. Esto nos indica que expirará dentro de 30 minutos (30 * 60) a partir de la hora actual (time()).
– ruta – La ruta en el servidor en la que estará disponible la cookie. Si se define como ‘/’, la cookie estará disponible en el dominio completo. Si se define como ‘/carpeta/’, la cookie estará disponible únicamente al interior del directorio ‘/carpeta/’ y todos sus subdirectorios en el dominio como por ejemplo ‘/carpeta/dibujos/’. El valor predeterminado es el directorio actual en el que se define la cookie.
– dominio – El dominio en el que la cookie está disponible. Para lograr que la cookie esté disponible en todos los subdominios de ‘example.com’ entonces es necesario definir este valor como ‘.example.com’. El carácter ‘.’ no es requerido pero hace a la cookie compatible con más navegadores. Definir su valor como ‘www.example.com’ hará que la cookie esté disponible únicamente en el subdominio ‘www’.
– segura – Indica que la cookie debería ser transmitida únicamente sobre una conexión HTTPS segura. Cuando su valor es TRUE, la cookie será definida únicamente si existe una conexión segura. El valor predeterminado es FALSE.

Principalmente vamos a usar los argumentos «nombre», «valor» y «expirar».

Para acceder a las Cookies podremos acceder mediante la matriz «$_COOKIE[«nombre»]». Y deberemos tener en cuenta que una cookie no será visible hasta la siguiente carga de una página.

Veamos un ejemplo sencillo. En el fichero «prueba.php» definimos la Cookie y le damos un valor.

<?PHP
setcookie(«Ejemplo»,»Valor de la cookie Ejemplo.»);
?>
<HTML>
<BODY>
Ejemplo de Cookies:<BR>
<A HREF=»prueba2.php»>Pulse aquí…</A>
</BODY>
</HTML>

Este código nos muestra la siguiente pantalla:

Capítulo 4. Cookies.
Al pulsar sobre el enlace iremos a la página «prueba2.php», donde nos mostrará el valor de la Cookie. Se ha de observar que como debemos usar comillas dobles para referenciar el nombre de la Cookie entre los corchetes, no podemos usar las comillas dobles en la función echo.

<HTML>
<BODY>
Usamos la cookie:<BR>
<?PHP
echo($_COOKIE[«Ejemplo»]);
?>
</BODY>
</HTML>

Que nos mostrará en el explorador lo siguiente:

Capítulo 4. Cookies.
Ejercicio 4.1: Realizar una página que la primera vez que la visite un usuario le solicite el idioma en la que quiere verla (español/inglés) y que sus siguientes visitas vaya directamente a la página en el idioma seleccionado. La Cookie deberá expirar a la semana siguiente.

Ejercicio 4.2: Realizas una página que cuando sea la primera vez que se visita aparezca un mensaje: «NO habías visitado aún esta página…», y las siguientes vecesnos dirá «Has visitado la página X veces.»

Publicaciones Similares