Crear y leer cookies con Javascript o PHP

Una cookie (o galleta en español) es una pequeña información enviada por un sitio web y almacenada en el navegador del usuario, de manera que el sitio web puede consultar y obtener el valor de la cookie previamente almacenada.

Las cookies se han vuelto indispensables hoy en día ya sea para guardar las preferencias del usuario o para cualquier otro propósito que requiera de alguna forma «guardar la partida» del usuario. Por ejemplo: algunas compañías la utilizan para mostrar publicidad en base los intereses del usuario. Asimismo podría ser utilizado para saber si un usuario ya ha visto un mensaje, de modo que no lo vuelva a mostrar.

Ya que sabemos y nos damos una idea de que es una cookie, procederé a explicarles como crear una cookie del lado del servidor con php o crearla del lado del usuario utilizando Javascript.

Con Javascript

//creamos una función para crear las cookies
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
//creamos una para leerlas
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; }

su uso es sencillo, para crear la cookie usamos la primera función de la siguiente manera setCookie("nombre", "valor", días); donde nombre es el nombre que le pondremos a la cookie, el valor es el contenido de la cookie y los días es el tiempo en el que la cookie expirará (será eliminada automáticamente).

una vez creada la cookie utilizaremos la segunda función para obtener el valor antes agregado, por ejemplo si la cookie es setCookie("demo", "cookie de demostración", 1); al utilizar la segunda función readCookie("demo"); estaremos indicando que lea el valor de la cookie "demo".

Con PHP

//Creamos la cookie
setcookie("nombre","contenido de la cookie",time()+segundos);
//Obtenemos el valor de la cookie
$_COOKIE['nombre'];

Ejemplo
setcookie("cookie1","Soy una cookie",time()+3600);
$_COOKIE['cookie1'];

Utilizando setcookie creamos una cookie con el nombre cookie1 cuyo valor es "Soy una cookie", el tiempo de expiración es time()+segundos donde segundos es el numero de segundos en el que caducará la cookie (3600 = 60 minutos)...es decir: la cookie caducará (será eliminada automáticamente) en 1 hora.

Una vez creada la cookie, utilizaremos $_COOKIE['cookie1']; para obtener el valor de la cookie previamente creada ¿fácil, no?