Actualites | Forum |Archives
Le magazine des décideurs et webmasters qui gagnent !
Inscription | Livre d'or | Plan du site | 15 visiteurs actifs
   
A la Une
Actualité
Dossiers
Communiqués
Coin Technique
Agenda des salons
Emploi
Echange de liens

Archives
Sélection
Expérience qui parle
Internet quotidien
Tous les dossiers

Forum
Forum SAM-MAG

Guides
Check-list de la promotion des sites
Promouvoir et référencer les sites web

Contact
Nous contacter
Newsletter
La protection des données personnelles


 
  Comment gérer les cookies en JavaScript
Dossier "SAM l'Informaticien" du 16 octobreau 29 octobre 2000 par Daniel Lucazeau

es cookies, des petits fichiers textes tout simples, mais qui rendent de grands services à condition de savoir les manipuler, les créer et surtout les récupérer.

Les cookies peuvent être manipulés par les scripts serveurs et les scripts clients, nous allons le faire avec JavaScript, côté navigateur.

Le cookie

Le cookie est une propriété de l'objet document. On y accède donc par "document.cookie". Il posède lui-même les attributs suivants : un nom, une valeur, un domaine, un chemin d'accès et une date d'expiration ; attributs qu'il vaut mieux connaître pour utiliser pleinement cet outil.

Je ne vais pas me lancer dans la description de ces attributs. Les spécifications des cookies sont donnés sur le site http://www.cis.ohio-state.edu/htbin/rfc/rfc2109.html plutôt abscons...

Nom et valeur : sont de chaînes de caractères standards. La valeur d'un cookie suit les règles de constitution des URL, il faudra donc utiliser les fonction escape() et unescape() pour en manipuler la valeur.

Date d'expiration : comme son nom l'indique, doit être donnée sous la forme « Wdy, DD-Mon-YY HH:MM:SS GMT ». Pour détruire un cookie, on lui affecte une date du passé !

Domaine : Par défaut, le cookie est la propriété du domaine qui l'a posé www.machintruc.com ne pourra pas lire les cookies posés par www.truc.net, pour des raisons de sécurité.

Chemin d'accès : permet de limiter encore plus la possibilité d'un cookie d'être lu par d'autres pages.

Javascript

Pour créer un cookie on utilise document.cookie ="monCookie=qqChose;". On a alors le cookie de nom 'monCookie' dont la valeur est 'qqChose'.
On en retrouvera la valeur par manipulation de la chaîne obtenue par document.cookie ; par l'utilisation de substring, charAt, indexOf et lastIndexOf. Par exemple pour conserver la date courante de la visite sur le site pendant un mois on va écrire cela :

<SCRIPT LANGUAGE="JavaScript">
var dateDuJour = new date();
var dateExpire = new Date();

dateExpire.setMonth(dateExpire.getMonth()+1);

qqChose = "date_last_visit=" + escape(dateDuJour);
qqChose += ";expires=" + dateExpire.toGMTString;

document.cookie = qqChose;
</SCRIPT>

Cela devient vite fastidieux à manipuler, et plutôt que de réécrire nos fonctions et que le Net regorge de scripts manipulant les cookies, nous n'avons que l'embarras du choix pour nous constituer une petite librairie et réutiliser les codes.

J'utilise cette famille de fonctions pour gérer les cookies :

function SetCookie ( name, value, expires, path, domain, secure) {
         szCookie = name + "=" + escape (value) +
                  ((expires) ? "; expires=" + expires.toGMTString() :                   "") +
                  ((path) ? "; path=" + path : "") +
                  ((domain) ? "; domain=" + domain : "") +
                  ((secure) ? "; secure" : "");
                  document.cookie = szCookie;
}

function GetCookie (name) {
         if ( document.cookie) { // Le cookie est-il valide ?
                  index = document.cookie.indexOf( name);
                  if ( index != -1) {
                           nDeb = (document.cookie.indexOf( "=", index) + 1);
                           nFin = document.cookie.indexOf( ";", index);
                           if (nFin == -1) {nFin = document.cookie.length;}
                           return unescape(document.cookie.substring(nDeb, nFin));
                  }
         }
         return null;
}

Daniel Lucazeau
@jornet.com
Chef de projet Internet
Développeur informatique

Tous droits réservés - Reproduction même partielle interdite sans autorisation préalable

 
 
Google
 
Web www.sam-mag.com
 

Copyright © ACORUS 2004. All Rights Reserved

- Sam-Mag.com Referencement-Sur-mesure - Referencer-Site-Web.com
Visibilite-Internationale.com - Referencement-Immobilier.net