You are on page 1of 4

LOS COOKIES

JULIOANDRE 02/10/2012

LOS COOKIES
Las cookies son la nica forma que tiene Javascript de guardar informacin en el disco duro de la persona que visita nuestra pgina. Para ello, el navegador de esa persona debe tener habilitadas las cookies, porque si no, no nos dejar escribir nada. La informacin guardada en una cookie puede ser leda y modificada tantas veces como queramos desde una pgina web, de esta forma podemos guardar datos sobre ese usuario que no se perdern ni cuando el usuario visite otras pginas, ni cuando apague su ordenador. Dentro del disco duro del cliente, las cookies se guardan en un lugar u otro en funcin del navegador usado. Por ejemplo, Netscape/Mozilla usa un fichero por cada "usuario" del ordenador/navegador. Todas sus cookies estn en ese fichero (llamado normalmente cookies.txt). Sin embargo, Explorer usa un fichero por cada dominio (con nombre usuario@dominio), dentro de un directorio llamado Cookie que est dentro del directorio de preferencias de cada usuario. En cualquier caso, esto es totalmente trasparente para el programador, y podemos despreocuparnos de si el cliente usa Netscape, Mozilla, I. Explorer o lo que ms le guste. Desde el punto de vista de Javascript, Las cookies se guardan en una propiedad del objeto document llamada cookie. Si nuestra pgina web ha definido alguna cookie, este propiedad tendr algn valor, si no, estar indefinida. El formato de esta propiedad es: nombreCookie1=valor1; nombreCookie2=valor2 Afortunadamente, existen funciones que agilizan el establecimiento y recuperacin del valor de una cookie. Son precisamente las que vamos a ver en la prxima seccin.

Cmo se usan
Existen una serie de funciones definidas, a saber: setCookie, getCookie, delCookie, cuyo significado es fcil de comprender. A continuacin se transcribe el cdigo de las mismas. Cpialo y gurdalo en un fichero cookies.js para su mejor uso.
/* --------------------------------------------------------------------Fichero.....: cookie.js Fecha.......: 22-Sep-2003 Descripcin.: Funciones para el uso de cookies. Curso de Javascript - Vctor Rivas Santos http://geneura.ugr.es/~victor --------------------------------------------------------------------*/ // Esta es la funcin que usa Heinle para recuperar una cookie // name - nombre de la cookie deseada // devuelve un string conteniendo el valor de la cookie especificada o null si la cookie no existe function getCookie(name){

var cname = name + "="; var dc = document.cookie; if (dc.length > 0) { begin = dc.indexOf(cname); if (begin != -1) { begin += cname.length; end = dc.indexOf(";", begin); if (end == -1) end = dc.length; return unescape(dc.substring(begin, end)); } } return null; } // Esta es una adaptacin de la funcin de Dorcht para establecer una cookie // name - nombre de la cookie // value - valor de la cookie // [expires] - fecha de caducidad de la cookie (por defecto, el final de la sesi?n) // [path] - camino para el cual la cookie es vlida (por defecto, el camino del documento que hace la llamada) // [domain] - dominio para el cual la cookie es vlida (por defecto, el dominio del documento que hace la llamada) // [secure] - valor booleano que indica si la trasnmisin de la cookie requiere una transmisin segura // al especificar el valor null, el argumento tomar su valor por defecto function setCookie(name, value, expires, path, domain, secure) { document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : "; expires=" + expires.toGMTString()) + ((path == null) ? "" : "; path=" + path) + ((domain == null) ? "" : "; domain=" + domain) + ((secure == null) ? "" : "; secure"); } // Esta es una adaptacin de la funcin de Dorcht para borrar una cookie // name - nombre de la cookie // [path] - camino de la cookie (debe ser el mismo camino que el especificado al crear la cookie) // [domain] - dominio de la cookie (debe ser el mismo dominio que el especificado al crear la cookie) // se considera el camino y dominio por defecto si se especifica null o no se proporcionan argumentos function delCookie (name,path,domain) { if (getCookie(name)) { document.cookie = name + "=" + ((path == null) ? "" : "; path=" + path) + ((domain == null) ? "" : "; domain=" + domain) + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; } }

Sin duda, la funcin ms compleja es setCookie, que es la que permite establecer el valor de una cookie. Veamos cmo se usa.

Su forma ms simple es: setCookie( "nombre",valor );, que te crea una cookie que se destruir cuando el usuario cierre su sesin (cierre el navegador), y es accesible slo por las pginas web cuyo dominio y camino de directorios sea los mismos que el de esta pgina en la que creas la cookie. Por el contrario, su forma ms extensa es: setCookie( "nombre",valor, expira, directorios, dominio, seguro );, donde:

expira: es la fecha en que debe expirar la cookie. Si no lo pones, expira al final de la sesin del usuario. directorios: directorio (del URL) para el que la cookie es vlida. Si no se pone, es el mismo directorio que el del URL que la establece. dominio: dominio(del URL) para el que la cookie es vlida. Si no se pone, es el mismo dominio que el del URL que la establece. seguro: es un valor lgico que indica si la transmisin de la cookie debe hacerse usando transmisin segura o no. Si no lo pones, se enviar de forma no segura.

El siguiente ejemplo establece una cookie llamada CLIENTE con el valor VICTOR RIVAS. La cookie expira en 1 minuto y est accesible slo para los documentos que cuelguen del directorio /~vrivas/cursillos/javascript del dominio geneura.ugr.es. Ejemplo 7.1
<script> // Primero establecemos la fecha de expiracin: maana a esta misma hora var expira=new Date(); expira.setMinutes( expira.getMinutes()+1 ); // A continuacin establecemos la cookie setCookie( "usuario", "Vctor Rivas", expira, "/~victor/cursillos/javascript", "geneura.ugr.es", false ); </script>

You might also like