Les cookies en PHP

par

dans

Les cookies permettent d’enregistrer / stocker des informations sur le poste client et d’y accéder ultérieurement. PHP supporte nativement les cookies.

Écrire un cookie : setcookie

La fonction setcookie() permet de créer un cookie. Le cookie étant envoyé avec le reste des en-têtes HTTP dans le header, cette fonction doit être appelée avant toute autre sortie telle que l’affichage HTML.

Pour créer un cookie, il faut au minimum lui donner un nom et une valeur mais celle-ci peut être une chaine vide ou le chiffre zéro.

Un cookie a généralement une date d’expiration. Il s’agit d’un timestamp (nombre de secondes depuis le 1er janvier 1970). Par exemple le résultat du calcul time() + 60 * 60 * 24 * 30 fera expirer un cookie dans 30 jours. Si un cookie est créé sans date d’expiration alors il expirera automatiquement à la fin de la session, c’est à dire à la fermeture du navigateur.

// Création d'un cookie qui expirera dans 1 heure
<a href="http://www.php.net/setcookie">setcookie</a>("nom", $value, (<a href="http://www.php.net/time">time</a>() + 3600°);

Lire un cookie : $_COOKIE

Les cookies précédemment créés peuvent être lus via la variable superglobale $_COOKIE.

// Récupérer la valeur d'un cookie
$value = $_COOKIE['nom'];

Pou forcer la suppression d’un cookie sur le poste client, il suffit de lui redéfinir une valeur vide (pas obligatoire mais c’est plus logique) et de lui attribuer une date d’expiration dans le passé.

// Expiration il y a 1 heure
<a href="http://www.php.net/setcookie">setcookie</a>("nom", '', (<a href="http://www.php.net/time">time</a>() - 3600°);