Prenez un cookie simon

Publié le 19 novembre 2007 par Tonylepsie

Et non, vous vous êtes fait avoir ! On ne parlera pas de nourriture ici, mais bien des cookies php (ca c’était de la blague -_-’)
Pour l’histoire, les cookies ont été conçues par Netscape afin d’améliorer les échanges client/serveur par le protocole HTTP. Leur interet réside dans la possibilité d’enregistrer des informations coté client qui peuvent être rappelés côté serveur. On les utilise notamment pour reconnaître un visiteur à chaque visite sur un site et ainsi rappeler par exemple ces préférences.

D’un point de vue technique, un cookie est fichier contenant une information textuelle d’une longueur maximale de 4000 octets.
Chaque domaine peut stocker un maximum de 20 cookies et un navigateur peut stocker un maximum de 300 cookies.

Voilà pour les présentations

Dis papa comment on fait des cookies ?

C’est très simple mon enfant. Il faut faire utiliser la fonction setcookie()

Script php

booleen setcookie(chaine nom_du_cookie, chaine valeur, entier expiration, chaine chemin, chaine domaine, entier securise);

6 arguments possibles mais seul le premier est obligatoire et le deuxième aussi (obligatoire par utilité en fait). Petite revue des arguments :

  • nom_du_cookie : pas de feinte, c’est le nom de votre cookie
  • valeur : il s’agit de la valeur du cookie, autrement dit la valeur qui sera renvoyée par la variable cookie.
  • expiration : Détermine quand le cookie sera supprimé. Cette valeur doit être au format temps unix, c’est à dire le nombre de secondes écoulées depuis le 1er janvier 1970 (en gros on utilise la fonction time() à laquelle on ajoutera la durée de validation du cookie). S’il on le laisse vide ou à 0, le cookie sera alors détruit lorsque le visiteur fermera son navigateur
  • chemin : Désigne le répertoire (et ses sous-répertoires) de votre site pour lequel le cookie est valide. Autrement dit, vous pouvez utiliser un cookie uniquement pour le répertoire /membres/ en utilisant cet argument. La valeur par défaut est /
  • domaine : Domaine sur lequel le cookie est valide. Cette valeur doit comporter deux points.
  • securise : Si le cookie est envoyé par liaison sécurisée (https), la valeur doit être 1.

Comment s’en servir ?

Première chose, l’envoi d’un cookie doit être la première fonction PHP que vous utilisez dans votre script, donc tout en haut du script. Si d’autres fonctions interviennent avant l’envoi du cookie, celui-ci ne fonctionnera pas.

Ensuite pour accéder au cookie, rien de plus simple

Script php

echo $_COOKIE[‘cookie_name’];

Enfin, si vous ne voulez plus de cookie, voici 2 différentes façons de détruire un cookie :

Script php

setcookie(‘cookie_name’);
setcookie(‘cookie_name’, , 1);

Trop de cookie tue le cookie

Je tiens à vous prevenir que les cookies ont eux aussi leur faiblesse. Déjà, le client peut refuser les cookies ou les supprimer et il n’est pas di qu’il utilise le même navigateur voire le même ordinateur à chaque connection à votre site.
Mais le gros défaut du cookie réside dans les informations qu’il contient. De ce fait, les cookies ne doivent donc pas être utilisés pour des informations importantes que ce soit des informations du site ou du visiteur.