Les cookies
Par Jonathan Kowalski, samedi 2 juin 2007 à 21:54 :: Technique :: #15 :: rss
Recettes PHP et JavaScript des cookies.

Parceque les cookies, c'est bon...

Parceque les cookies, c'est bon...
Sommaire
Qu'est-ce qu'un cookie
En plus de délicieux gateaux les cookies sont aussi, selon Wikipedia,de petits fichiers textes stockés par le navigateur Web sur le disque dur du visiteur d'un site Web et qui servent (entre autres) à enregistrer des informations sur le visiteur ou encore sur son parcours dans le site. Le webmestre peut ainsi reconnaître les habitudes d'un visiteur et personnaliser la présentation de son site pour chaque visiteur ; les cookies permettent alors de garder en mémoire combien d'articles il faut afficher en page d'accueil ou encore de retenir les identifiants de connexion à une éventuelle partie privée : lorsque le visiteur revient sur le site, il ne lui est plus nécessaire de taper son nom et son mot de passe pour se faire reconnaître, puisqu'ils sont automatiquement envoyés par le cookie.Nous voilà un plus cultivé, bien maintenant comment utiliser ces cookies (pour faciliter la vie de l'utilisateur pas pour le fliquer hein !).
Un cookie a une durée de vie limitée, fixée par le concepteur du site. Ils peuvent aussi expirer à la fin de la session sur le site, ce qui correspond à la fermeture du navigateur. Les cookies sont largement utilisés pour simplifier la vie des visiteurs et lui présenter des informations plus pertinentes. Mais une technique particulière permet aussi de suivre un visiteur sur plusieurs sites et ainsi de collecter et recouper des informations très étendues sur ses habitudes. Cette technique a donné à l'usage des cookies une réputation de technique de surveillance violant la sphère privée des visiteurs.
D'une manière générale deux voire trois manipulations se font sur les cookies, la création, la lecture et la destruction.
Deux méthodes pour faire tout cela, en PHP ou en JavaScript. Puisque l'on peut avoir besoin de connaitre les deux, commençons par le PHP :
Manipuler des cookies en PHP
Création
La création de cookies en PHP se fait via la fonctionsetcookie qui se definit comme suit : bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )Comme vous pouvez le voir seul le nom est obligatoire. Il est aussi à noter que les cookies sont des en-têtes et doivent donc être envoyer avant toute sortie balise
<html> ou <head>Voyons tout de suite un exemple un poil plus concret.
Exemple
<?php setcookie("Nom","Dupond",time()+3600); ?>
|
expire, il est à noter que celui-ci est un timestamp Unix et qu'il vous faudra donc utiliser la fonction time() ou mktime(). Si vous occultez l'argument expire ou si vous le fixez à 0, le cookie expirera à la fin de la session (soit la fermeture du navigateur).Je ne m'attarderais pas plus sur les arguments de
setcookie mais vous pouvez retrouver toutes les explications nécessaires sur l'excellent manuel php ICI.
Lecture
La aussi la manipulation est simplissime, on récupère nos cookies grâce aux variables prédéfinies$_COOKIES ou $HTTP_COOKIE_VARSAinsi et pour reprendre l'exemple :
Exemple
<?php
|
A noter que si vous désirez lister tous vos cookies vous pouvez le faire via la méthode suivante :
<?php
|
Destruction (MAJ 04/06)
La méthode vue précédemment (à savoir l'utilisation de setcookie avec comme seul argument le nom du cookie) ayant à priori des réactions difficilement prévisibles, puisque si un cookie dont la valeur estnull, est censé être éffacé du client, cela ne semble pas toujours être le cas, nous allons voir deux méthodes plus "sûres" afin de faire disparaitre ces délicieux biscuits.La première, toujours en utilisant la fonction
setcookie, consiste à fixer la date d'expiration dans le passé (-1 heure par exemple).
Exemple
<?php
|
unset toujours utile pour détruire une variable !
Exemple
<?php
|
Voilà , c'est à peu près tout ce qu'il y a à savoir sur les cookies et leur manipulation via PHP. Rien de bien compliqué donc et c'est aussi le cas avec JavaScript, que nous allons voir tout de suite.
Mais avant je sens pointer la question :
Mais pourquoi je me ferais ***** à apprendre à les manipuler en JavaScript alors que je sais le faire maintenant en PHP ?Très bonne question à laquelle, en temps que pseudo informaticien et vrai feignant, il est difficile de trouver une réponse engageante. Cependant on pourra en avncer au moins deux, la première : "On en sait jamais assez"...
Ok, passons à la deuxième alors, on a pu voir que la manipulation via PHP nous obligeait à utiliser la fonction
setcookie avant toute sortie ce qui est somme toute assez limitatif hors JavaScript nous permet de nous affranchir de cette limitation en nous permettant la manipulation de cookie à n'importe quel moment/endroit de notre page.Troisième raison qui n'en est pas une, c'est aussi très simple.
Manipuler des cookies avec JavaScript
Création
Evidemment que ce soit en JavaScript, PHP, VBScript ou Mambo, un cookie reste un cookie avec les mêmes paramètres.En Javascript on crée un cookie grâce Ã
document.cookie, le mieux est de créer une fonction afin d'éviter les répétitions de code. On pourra donc utiliser la fonction vu précédemment dans le tuto pour créer un changeur de style en JavaScript :
<script type="text/javascript" language="JavaScript" >
|
Exemple
<script type="text/javascript" language="JavaScript" >
|
Lecture
Ici aussi, on utilise une fontion qui se présente comme suit :
<script type="text/javascript" language="JavaScript" >
|
<script type="text/javascript" language="JavaScript" >
|
Destruction
Pour finir, la destruction, pour détruire notre cookie, on va en fait recréer notre cookie, mais avec une date d'expiration obsolète :
<script type="text/javascript" language="JavaScript" >
|







Commentaires
1. Le lundi 4 juin 2007 à 11:27, par Gwen
2. Le lundi 4 juin 2007 à 20:31, par Thanh
3. Le lundi 4 juin 2007 à 21:41, par Jonathan
4. Le mardi 5 juin 2007 à 09:16, par Gwen
Ajouter un commentaire