Gérer les cookies en JS


Retour au menu

Pourquoi les cookies ?

On peut définir les cookies comme la "mémoire du WEB".

Observations

Vérifier le paramètre suivant de votre navigateur
Menu Edition/Préférences/Avancées/, activer : La présente page abrite un cookie, à des fins de démonstration, nommé CompterPassageCoursCookie. Comment le cookie CompterLesPassages a t-il été noté ?

Enregistrement d'un cookie

Durant la session Web, chaque cookie est conservé en mémoire, il y a écriture sur disque à la fermeture du navigateur. L'écriture s'effectue sur instruction du serveur utilisant la directive HTTP suivante (incluse dans l'en-tête)
Set-Cookie 
  nom=valeur; [expires =date; path= chemin-client; domain= nom-domaine; secure]

Ecrire un cookie

Voici le code gérant le cookie CompterPassageCoursCookie
<SCRIPT LANGUAGE="JavaScript">
// la date d'expiration
var futur = new Date(2005,1,1);

function CompterLesPassages () {
// fonction pour mettre en évidence le cookie
n = RechercherLeCookie("CompterPassageCoursCookie");
opts="width=200,height=20,,screenX=400,screenY=10"
fen = open("", "Delicious_Cookies",opts);
fen.document.write("Page chargée "+ n + " fois !<P>
	Vous reprendrez bien un de ces délicieux cookies ...");
fen.document.close();
id=setTimeout("fen.close();MiseAJourCookie (n);",2000);
}

function MiseAJourCookie (nb) {
// fonction de mise à jour du cookie
nb = eval(nb) + 1;
document.cookie = "CompterPassageCoursCookie=" + nb + ";
	 expires=" + futur.toGMTString();
}

function RechercherLeCookie (unArgument) {
// recherche de notre cookie dans la chaine gérée par le navigateur
// cette chaine est une propriété de l'objet document
var chaine = document.cookie ;
unArgument = unArgument + "=";
var longueur = unArgument.length ;
var resultat;
if(chaine.length > 0) {
 debut = chaine.indexOf( unArgument , 0 );
 if (debut >= 0)	{
   fin = chaine.indexOf( ";" , debut+longueur );
   if (fin >= 0)
	resultat = unescape(chaine.substring(debut+longueur,fin));
   else
	resultat = unescape(chaine.substring(debut+longueur,chaine.length));
   }
 else resultat = 0;
 }
else resultat = 0;
return resultat;
}


Supprimer un cookie

Comment supprimer notre cookie CompterPassageCoursCookie ? La méthode la plus simple consiste à le réenregistrer en lui attribuant une date d'expiration dépassée !
<SCRIPT LANGUAGE="JavaScript">
// la date est dépassée !
var date = new Date(1999,0,1);
function EffacerCookie() {
//nom est le nom du cookie
document.cookie = "CompterPassageCoursCookie=" + ";expires=" + date.toGMTString();
}

Pour supprimer le cookie -->


Exercice

Etudions un autre exemple de cookie (réf. JavaScript/M. Dreyfus/Sybex)