document.cookie

Anuncio
Cookies:
Uso en JavaScript
Sergio Luján Mora
sergio.lujan@ua.es
Cook-03
Vídeo de esta presentación
Puedes ver esta presentación en vídeo:
http://www.youtube.com/watch?v=i__IbhyrB28
La información se almacena a petición del
servidor web:
-Directamente desde la propia página web
con JavaScript
document.cookie
-Desde el servidor web mediante las
cabeceras HTTP
PHP: setcookie() y $_COOKIE
Una pareja nombre/valor
Un dominio
Una ruta
Una fecha de caducidad o máxima edad
Una marca de sólo conexión segura
Una marca de sólo HTTP
document.cookie:
– Define, modifica o borra una cookie si ya existe
– Devuelve todas las cookies de la página actual
– El acceso no es directo, ya que devuelve una
única cadena que contiene todas las cookies de la
página (separadas por “;”)
– Para acceder a una cookie concreta, es necesario
analizar la cadena para localizar su valor
javascript:alert(document.cookie)
javascript:alert(document.cookie)
document.cookie
setCookie() recibe tres parámetros:
– El nombre de la cookie (c_name)
– El valor de la cookie (value)
– La fecha de caducidad como el número de
días a partir de la fecha actual
(expiredays)
function setCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires="+
exdate.toUTCString());
}
getCookie():
– Recibe sólo un parámetro, el nombre de la
cookie que se quiere recuperar (c_name)
function getCookie(c_name) {
if(document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if(c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if(c_end == -1)
c_end = document.cookie.length;
return
unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
Para borrar una cookie, se tiene que
asignar a la cookie una fecha de
caducidad (expires) en el pasado:
setCookie("nombre", "", -1);
function setCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires="+
exdate.toUTCString());
}
function getCookie(c_name) {
if(document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if(c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if(c_end == -1)
c_end = document.cookie.length;
return
unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
Sergio Luján Mora; Alicante
escape()
Sergio%20Luj%E1n%20Mora%3B%20Alicante
unescape()
Sergio Luján Mora; Alicante
prueba.html
cookies.js
ejemplo.js
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Prueba de JavaScript</title>
<script src="cookies.js"></script>
</head>
<body>
<p>
<script src="ejemplo.js"></script>
</p>
</body>
</html>
var ahora = new Date();
var registro = getCookie("registro");
if(registro != "") {
var arrayRegistro = registro.split("|");
for(i = 0; i < arrayRegistro.length; i++)
document.write(arrayRegistro[i] + "<br />");
registro += "|";
}
setCookie("registro", registro + ahora.toUTCString(), 365);
Sun%2C%2030%20Oct%202011%2016%3A09%3A17%20GMT%7CSun%2C%2030%20Oct%202011%2016%3A10%3A42%20GMT
unescape()
Sun, 30 Oct 2011 16:09:17 GMT|Sun, 30 Oct 2011 16:10:42 GMT
Más información:
http://accesibilidadweb.dlsi.ua.es/
http://desarrolloweb.dlsi.ua.es/
sergio.lujan@ua.es
Créditos de fotografías e imágenes:
http://www.sxc.hu/photo/1282932
http://www.sxc.hu/photo/1334872
Descargar