nombre=valor;[expires=caducidad;]
function mandarGalleta(nombre, valor, caducidad) {
document.cookie = nombre + "=" + escape(valor)
+ ((caducidad == null) ? "" : ("; expires=" + caducidad.toGMTString()))
}
Con esta función mandamos una galleta. 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 metodo toGMTString() del objeto Date.
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));
}
}
}
Declaramos la variable buscamos
que contiene el nombre de la galleta que queremos buscar más el
igual que se escribe justo después de cada nombre, para que así
no encontremos 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 galleta 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() {
var fecha=new Date (99, 12, 31); // La fecha de caducidad es 31 de diciembre del 1999
if (!(num=consultarGalleta("VisitasAlCursoDeJavaScript")))
num = 0;
num++;
mandarGalleta("VisitasAlCursoDeJavaScript", num, fecha);
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 galleta incrementandolo y, si no existe, lo pone a uno. Luego escribe en el documento el número de veces que has visitado el curso. Y, por lo que veo,