Cada elemento de esa lista tiene dos campos obligatorios: el nombre y su valor; y uno opcional: la fecha de caducidad. Este último campo sirve para establecer la fecha en la que se borrará la cookie. Tiene este formato:
nombre=valor;[expires=caducidad;]
Sólo el servidor que ha enviado al usuario una determinada cookie
puede
consultarla. Cada cookie tiene un tamaño máximo
de 4 Kb y puede haber un máximo de 300 cookies en el disco duro.
Cada servidor podrá almacenar como mucho 20 cookies
en
el fichero cookies.txt del usuario.
Para poder hacer algo útil con estas cookies habrá que programar dos funciones: una que se encargue de mandar una galleta al usuario y otra que consulte su contenido.
function mandarGalleta(nombre, valor,
caducidad)
{
document.cookie = nombre +
"=" + escape(valor)
+ ((caducidad == null) ? ""
: ("; expires=" +
caducidad.toGMTString()))
}
Con esta función se manda una cookie al ordenador del usuario. Vemos que el valor es codificado por medio de la función escape y que la caducidad (en caso de decidir ponerla) debe ser convertida a formato GMT. Esto se hace mediante el método toGMTString() del objeto Date. Véase ahora la función de consultar la cookie:
function consultarGalleta(nombre)
{
var buscamos = nombre + "=";
if (document.cookie.length
> 0)
{
i = document.cookie.indexOf(buscamos);
if (i != -1)
{
i +=
buscamos.length;
j =
document.cookie.indexOf(";", i);
if
(j == -1)
{
j = document.cookie.length;
return unescape(document.cookie.substring(i,j)
}
}
}
}
Se ha declarado la variable buscamos
que
contiene el nombre de la cookie que se desea buscar más
el igual que se escribe justo después de cada nombre, para que así
no se encuentre por error un valor o una subcadena de otro nombre que sea
igual al nombre de la galleta que buscamos. Una vez encontrada extraemos
la subcadena que hay entre el igual que separa el nombre y el valor y el
punto y coma con que termina dicho valor.
Vamos a ver un ejemplo. Utilizaremos una cookie llamada VisitasAlCursoDeJavaScript para guardar el número de veces que has visitado este curso:
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Se usan los comentarios
para esconder el código
a navegadores sin JavaScript
function Contador()
{
if
(!(num=consultarGalleta("VisitasAlCursoDeJavaScript")))
num = 0;
num++;
mandarGalleta("VisitasAlCursoDeJavaScript",num);
if
(num==1)
document.write("esta es la primera vez que lees este capítulo.");
else
{
document.write("has visitado este curso "+num+" veces.");
}
}
// -->
</SCRIPT>
</HEAD>
<BODY>
Por lo que veo,
<SCRIPT LANGUAGE="JavaScript">
<!--
Contador();
// -->
</SCRIPT>
</BODY>
</HTML>
La función consulta el valor de la cookie incrementandolo y, si no existe, lo pone a uno. Luego escribe en el documento el número de veces que has visitado el curso. Prueba a meter este código en una página y visítala varias veces. Verás cómo cada vez el PC indica el número de veces que visita la página cada ordenador.