COURS JavaScript



Accueil | Boîte à outils : Les Cookies, Ecrire plusieurs cookies

Les Cookies, Ecrire plusieurs cookies

 


Généralités

Dans les précédentes leçons sur les cookies, nous avons appris à écrire, lire, modifier et supprimer un cookie. Nous avons aussi vu un bon exemple d'usage utile qui est de demander son nom à l'internaute dans une page d'accueil puis de personnaliser toutes les pages qu'il va regarder sur votre site en mettant son nom en haut de chaque page.
Jusque là, c'est moi qui ai donné le nom au cookie. Voyons maintenant comment écrire plusieurs cookies sur le disque dur du client. En donnant vous même le nom que vous voudrez, le contenu que vous voudrez à ce cookie et même le nombre de jours que vous voudrez qu'il reste sur le disque du client.
Je vous rappelle encore une fois que vous pouvez écrire tout ce que vous voulez dans un cookie en évitant seulement d'utiliser le ";" (point virgule) qui est le signe de séparation des cookies entre eux. .

On y va ?



Ecrire n'importe quel cookie.

Comme c'est vous même qui allez donner un nom au cookie, je vais vous laisser le saisir. J'ai créé pour ça, un champ qui s'appelle NomCookie. C'est le champ ci dessous.

Veuillez saisir le nom du cookie. :

Mais attention, je rappelle qu'un nom ne doit comporter ni espace, ni accents, ni caractères spéciaux... Normalement... Mais si vous essayez de saisir des accents, des espaces et même des caractères spéciaux dans le nom du cookie, vous verrez que ça marche quand même sous Windows 9x.... Ah les mystères de JavaScript... Je recommande néanmoins de respecter la syntaxe et de ne pas utiliser de caractères accentués ou autres. Ca évite toujours les Pb sur certains systèmes. . Ça y est ? C'est fait ?... Bon. On peut continuer.

Saisissez maintenant ce que vous voulez écrire dans le cookie. Son contenu. Là, vous pouvez écrire tout ce que vous voulez, mais surtout pas de point virgule (";"). Le champ s'appelle ContenuCookie. C'est le champ ci-dessous.

Saisissez le contenu du cookie

Indiquez le nombre de jours que vous voulez que le cookie reste sur le disque du client. Attention, je ne vais pas faire de contrôle sur la valeur numérique ou non de votre saisie dans ce champ. Je vous fais confiance. Si vous ne saisissez paz une valeur correcte (numérique) ça ne marchera pas. Tant pis pour vous.... Le champ s'appelle JoursCookie.

Combien de jours sera-t-il valide ?

Nous sommes toujours dans le formulaire que j'ai appelé formulaire. Il ne reste plus qu'à récupérer ce que vous venez d'écrire dans les champs et de mettre tout ça en forme comme nous avons appris à le faire dans les leçons précédentes.

Je peux donc maintenant récupérer le nom que vous avez saisi et le mettre dans la variable "NomDuCookie" par l'instruction :

var Nom ; // pour le nom du cookie
NomDuCookie = document.formulaire.NomCookie.value ; // récupération du nom du cookie.

On va aussi récupérer le contenu que vous avez saisi. Ce que vous voulez écrire sur le disque du client dans le cookie. On écrira :

var Contenu ; // pour le contenu du cookie
Contenu = document.formulaire.ContenuCookie.value ; // récupération du contenu du cookie.

Passons maintenant au nombre de jours de validité du cookie. Je suppose que vous avez saisi une valeur numérique. Si c'est le cas, l'instruction suivante relèvera le nombre de jour de validité que vous avez décidé.

var NbJours ; // pour le nombre de jours de validité du cookie
NbJours = document.formulaire.JoursCookie.value ; // récupération du nombre de jours de validité.

Nous avons maintenant tout pour écrire le cookie sur le disque. Je vous rappelle que le nombre de jours que vous avez saisi est considéré comme du texte dans la plupart des navigateurs. Il faut donc le transformer en un vrai chiffre par l'instruction :

NbJours = parseInt(NbJours) ; // transforme en variable numérique

Nous avons vu ça dans la leçon sur les transformations de chaînes. Allez voir si vous ne vous souvenez plus.
Mais ça n'est pas tout pour ce nombre de jours. Souvenez vous des instructions qu'il faut pour fixer ce que nous avions appelé expdate

var expdate = new Date () ; // crée un objet date
expdate.setTime (expdate.getTime() ) ; // met l'instant présent dans la variable
expdate.setTime (expdate.getTime() + ( 10 * 24 * 60 * 60 * 1000)) ; // le conserve dix jours.

Tout ceci est dans la leçon correspondante. Pour que cette instruction conserve le cookie le nombre de jours que VOUS aurez saisi dans le champ correspondant, il nous suffira de remplacer le "10" par la variable contenant ce nombre de jours en écrivant pour notre exemple :

expdate.setTime (expdate.getTime() + ( NbJours * 24 * 60 * 60 * 1000)) ; // le conserve le Nb de jours décidé.

Voilà. Maintenant, nous avons vraiment tout ce qu'il nous faut. Il ne nous reste plus qu'à l'écrire dans un cookie. Ca, ça n'est pas bien compliqué et nous savons comment faire. Pour celles et ceux qui n'auraient pas encore vu comment arriver à ce résultat, il faut aller lire les leçons sur les cookies. Pour les autres, nous allons juste écrire cette valeur dans un cookie sur le disque du client comme on sait le faire par l'instruction :

document.cookie = Nom + "=" + Contenu + "; expires=" + expdate.toGMTString() ; // écriture sur le disque

en ayant bien pris soin de positionner les différents paramètres comme il faut. Pour créer le cookie avec le nom, le contenu et le nombre de jours de validité que vous avez saisi, cliquez ici sur Ecrire le cookie. Puis vous pourrez vérifier que c'est bien écrit à l'aide des liens sous le champ ci-dessous, comme d'habitude.

Vous pouvez : Ecrire le cookie | Lire les cookies | Supprimer le cookie (le lien "Supprimer le cookie" marche bien mais l'affichage ne fonctionne pas sous MIE. Il faut refermer puis rouvrir le navigateur MIE pour voir le cookie disparaître à l'affichage).

Vous pouvez recommencer en saisissant un autre nom, un autre contenu, même un autre nombre de jours de validité et voir que les cookies s'ajoutent les uns aux autres. Notez que chaque cookie pour un même domaine est séparé par un ";" (point virgule). Essayez. Vous verrez. Servez vous de l'ascenseur horizontal pour voir tous les cookies écrits les uns après les autres.
Notez aussi que le lien "Supprimer le cookie supprime le cookie portant le nom qui est saisi dans le champ correspondant. Si vous voulez supprimer un cookie particulier, saisissez son nom dans le champ correspondant et cliquez sur "Supprimer le cookie".

Suite de la leçon (pas encore écrit :-). Patience...



Ce cours est enseigné par Philippe Médan 
dans le cadre de la formation des professionnels de l'INTERNET.
au CREFAC , 14 rue Scandicci, 93000 Pantin. Tél. : 01 48 46 51 99
au GITA-GRETA , Lycée Technologique Diderot 61, rue David D'Angers 75019 Paris Tél. : 01 40 40 36 27
au CESI à l'Ecole des ingénieurs, 116 Av Aristide Briand, BP 57, 92224 Bagneux CEDEX Tél. : 01 45 36 70 00
au CFA-AFIA Centre de Formation par l'Apprentissage spécialisé en Informatique DUT Licence MIAGE,
PUIO - Bâtiment 640 - Plateau du Moulon - 91405 Orsay Tél. : 01 69 15 35 19.

© Philippe Médan 1999-2007. Tous droits de reproduction réservés pour tous pays.