Un cookie ? una piccola quantit? di dati memorizzati dal browser e associati ad una particolare pagina o sito web.
Cookie ? una "propriet?" dell'oggetto "document", di tipo "stringa" che consente di leggere, creare, modificare, eliminare il cookie.
Il cookie possiede 4 attributi opzionali che controllano la sua durata, visibilit? e sicurezza che sono:expires (specifica la durata del cookie)
path (specifica le pagine web a cui ? associato)
domain (specifica il dominio su cui il cookie sar? visibile)
secure (specifica il modo di trasmissione dei valori del cookie nella rete)
Memorizzare un cookie
Per associare il valore di un cookie al documento corrente:
sintassi: nome=valore
esempio: document.cookie= "pippo=" + escape(document.lastModified);
I valori dei cookie non possono contenere punti, virgole o spazi bianchi perci? utilizziamo la funzione "escape()" per codificare il valore prima di registrarlo nel cookie.
Perch? il cookie possa persistere anche in una sessione successiva di utilizzo del browser, occorre impostare l'attributo expires:
sintassi: nome=valore; espires=data;
La data deve essere in formato Date.toGMTString() e se vogliamo creare un cookie che abbia la durata di un anno dobbiamo scrivere:
var anno = new Date();
anno.setFullYear(anno.getFullYear() +1);
document.cookie="pippo=" + document.lastModified + "; expires=" + anno.toGMTString();
E' possibile impostare gli attributi path, domain e secure accodando le rispettive stringhe:
sintassi:; path=percorso; domain=dominio; secure
I cookie sono progettati per piccole quantit? di dati e non sono adatti per trsferimento dati e comunicazione.
Leggere un cookie
Utilizzando la propriet? cookie il valore restituito ? una stringa contenente tutti i cookie del documento corrente.
La stringa ? un elenco di coppie nome=valore separate da punto e virgola.
Per ottenere gli attributi del cookie che ci interessa dobbiamo utilizzare i metodi string.indexOf() e string.substring() o string.split() per dividere la stringa in cookie separati.
Ricordiamoci di utilizzare unescape() se la stringa ? stata codificata con escape()
var tutti=document.cookie; //--legge la propriet? cookie--
var cook=tutti.indexOf("pippo="); //--cerca l'inizio del cookie di nome pippo--
if(cook != -1){
var aa= cook +6; //--inizio valore cookie--
var zz=tutti.indexOf(";", cook); //--fine valore cookie--
if(zz== -1) zz=tutti.length;
var valore=tutti.substring(aa, zz); //--estrazione del valore--
valore=unescape(valore); //--decodifica--
alert(valore); //--Verifichiamo che il valore estratto corrisponda--
alert(document.lastModified) //--alla data di ultima modifica--
}
Metodi
store() (esegue un ciclo attraverso tutte le propriet? dell'oggetto cookie e concatena nomi e valori in una stringa)
load() (legge la propriet? cookie dell'oggetto document per ottenere il valore di tutti i cookie associati)
remove() (elimina il cookie specificato dal documento)