TUTORIELS 
Gérer des cookies en PHP
Rien de plus simple que de créer, récupérer et détruire un cookie en PHP.t  (16 mars 2001)
 

Bien que l'utilisateur méfiant à leur égard conserve la possibilité, par l'intermédiaire des propriétés de son navigateur, de les désactiver, les cookies se sont aujourd'hui généralisés: rares sont les sites qui se privent de ce moyen très utile et relativement simple à mettre en oeuvre pour venir identifier ses visiteurs et leur proposer, par ce biais, un contenu toujours plus personnalisé.
Les cookies permettent de stocker des informations sur le disque dur de l'internaute, sous forme d'un fichier texte de petite taille. Le contenu de ses fichiers peut être lu par le site, permettant ainsi:

- de reconnaître le visiteur lors d'une visite ultérieure;
- de stocker des informations temporaires que l'on souhaite transmettre de page en page (un système de gestion de sessions par exemple).

Créer un cookie en PHP
Nous allons utiliser la fonction setcookie(), de la manière suivante (par exemple):

setcookie("Journaldunet", "oui", time()+3600*24*30, "/", ".journaldunet.com",0);

Le premier argument de la fonction spécifie le nom du cookie. Le second argument spécifie sa valeur (ici une chaîne). Le troisième spécifie la date et l'heure à laquelle expirera le cookie: plus précisément, cette valeur est exprimée en nombre de secondes écoulées depuis le 1er janvier 1970 (en pratique, on utilise la fonction time() pour connaître l'heure courante, à laquelle on ajoute la durée de validation du cookie en secondes). Notre cookie expirera ici après 30 jours (omettre l'argument, provoque l'expiration du cookie immédiatement après la fermeture du navigateur). Le quatrième argument spécifie le chemin du répertoire de notre site où le cookie possède une validité; ici, nous spécifions la racine du site : nous aurions pu omettre cette précision car il s'agit là de la valeur par défaut de cet argument facultatif. Le cinquième argument spécifie le nom du domaine sur lequel est valable le cookie : là encore, il s'agit d'un argument facultatif dont la valeur par défaut est le nom du domaine duquel a été envoyé le cookie. A noter que ce nom de domaine doit obligatoirement comporter deux ".". Enfin le sixième et dernier argument est fixé à 1 si l'envoi du cookie est effectué par protocole sécurisé (https), à 0 sinon (valeur par défaut de cet argument facultatif).

Récupération de la valeur des cookies
Les valeurs des cookies valides et disponibles sont automatiquement stockées dans le tableau $HTTP_COOKIE_VARS. Selon la configuration de votre serveur, elles sont également stockées dans la variable correspondant au nom du cookie. Ainsi, on affichera cette valeur soit par:

echo $Journaldunet;

soit, de manière plus rigoureuse, par:

echo $HTTP_COOKIE_VARS[ "Journaldunet"];

Suppression d'un cookie

Il est très simple, là encore, de supprimer un cookie, par exemple en cas de déconnexion d'une session par l'utilisateur: la méthode consiste à renvoyer un cookie avec, pour seul argument à la fonction setcookie(), le nom du cookie à supprimer.

 
[ Jérôme MorlonJDNet
 
Accueil | Haut de page