sábado, 11 de enero de 2014

Como crear cookies en Javascript



Bienvenid@s, hoy vamos a ver como crear cookies en javascript y acceder a sus valores, pero antes es necesario saber, ¿Qué son las cookies?. Las cookies también llamadas "galletas informáticas" es un trozo de información enviada por una página web y que es almacenada en el navegador del cliente, las cookies están muy extendidas en las aplicaciones web, de hecho son una pieza fundamental para almacenar información del usuario, así, por ejemplo podrías almacenar la sesión de un usuario, almacenar los productos de un carrito de la compra, llevar un contador de visitas, guardar las preferencias que tiene un usuario al visitar el sitio, es decir, saber las cosas que más le interesan, por ejemplo, en una tienda de ropa, el usuario tiende a buscar pantalones, pues esta información puede ser almacenada en una cookie, también las cookies son motivos de polémica, debido a su utilización por parte de agencias publicitarias que persiguen y espían las tendencias de navegación del usuario y que para muchos es una clara vulneración de la privacidad.

Una vez visto un pequeño repaso sobre las cookies, vamos a ver dos funciones que verás en el ejemplo muy útiles para trabajar con cookies en Javascript, una de ellas es set_cookie(nombre, valor, dias); al parámetro nombre le corresponde el nombre de la cookie, al parámetro valor el valor que asignes a la cookies y en el parámetro dias debes indicar los días que tardará en expirar la cookie. La función set_cookie la puedes utilizar para crear tantas cookies como necesites, si quisieras eliminar una cookie, simplemente agega el valor -1 en el parámetro días, por ejemplo, set_cookie("nombre", "", -1);

La segunda función get_cookie(nombre); te va a permitir saber el valor de una cookie a través de su nombre, es decir si tuvieras una cookie llamada productos, para saber el valor de la cookie harías los siguiente get_cookie("productos");

El código del ejemplo ...


/* By http://jquery-manual.blogspot.com */

function set_cookie(nombre, valor, dias)
{
/* El parámetro dias es para la expiración de la cookie */
var fecha = new Date();
var parametro = nombre + "=" + valor;
//Creando la fecha de expiración
fecha.setTime(fecha.getTime() + (dias * 24 * 60 * 60 * 1000));
//Formato UTC para la fecha de expiración
var UTC = fecha.toUTCString();
//Creando la cookie
document.cookie = parametro + "; expires=" + UTC + "; path= /";
}

function get_cookie(nombre)
{
/* Obtenemos todas las cookies */
var cookies = document.cookie;
/* Las separamos a través del ; */
var parametros = cookies.split(";");

/*Recorremos una a una las cookies */
for (x = 0; x < parametros.length; x++)
{
/* Separamos nombre valor de la cookie a través del signo = */
var parametro = parametros[x].split("=");
/* Buscamos el valor de la cookie a través de su nombre */
if (parametro[0].trim() == nombre)
{
var valor = parametro[1];
break;
}
}
/* Retornamos el valor de la cookie si es encontrada */
return valor;
}

/* Crear las cookies */
set_cookie("nombre", "manuel", 3);
set_cookie("email", "manuel@gmail.com", 3);

/* Mostramos los valores de las cookies a través de sus nombres */
document.write("<p>" + get_cookie("nombre") + "</p>");
document.write("<p>" + get_cookie("email") + "</p>");