Médiaforma

PHP MySQL – Cookies

Print Friendly

Les cookies sont comparables aux variables de session, à quelques détails près :

  • Ils sont stockés sur l’ordinateur des visiteurs et donc propres à chaque visiteur ;
  • Ils ont une durée de vie programmable.

Tout comme les variables de session, ils doivent être déclarés avant la balise <html>.

Pour mémoriser un cookie, vous utiliserez la fonction setcookie() :

setcookie(nom, valeur, expiration, chemin, domaine, securite, httponly);

Où :

  • nom est le nom du cookie.
  • valeur est la valeur à mémoriser dans le cookie.
  • expiration est le temps après lequel le cookie n’est plus valable. Cette valeur est un timestamp Unix, calculé en nombre de secondes depuis le 1 Janvier 1970. Pour obtenir facilement cette valeur, ajoutez la durée de vie du cookie à la fonction time(). Par exemple, pour obtenir une durée de vie de 30 jours, affectez la valeur time() + 30*24*3600 à ce paramètre.
  • chemin est le chemin sur le serveur sur lequel le cookie doit être disponible (« / » pour l’ensemble du domaine, « rep » pour limiter le cookie au dossier rep du serveur et à ses sous-dossiers.
  • domaine est le domaine pour lequel le cookie est disponible (« www.mondomaine.com » par exemple).
  • securite indique si le cookie doit être transmis à travers une connexion sécurisée https (true) ou non (false).
  • httponly indique si le cookie ne doit être accessible que par le protocole http (true) ou également via les langages de scripts, comme JavaScript (false). Initialisez ce paramètre à true pour limiter les attaques de type XSS.

Remarques

Tous les paramètres à l’exception du premier sont optionnels. Les paramètres chemin et domaine peuvent être initialisés à null s’ils ne sont pas utilisés.

Par exemple, pour définir le cookie prenom, l’initialiser avec la valeur « pierre » et lui donner une durée de vie d’une heure, vous utiliserez l’instruction suivante :

setcookie("prenom", "pierre", time() + 3600, null, null, false, true);

Pour afficher tous les cookies enregistrés sur l’ordinateur, utilisez la fonction var_dump() :

var_dump($_COOKIE);

Pour afficher un cookie donné, utilisez la superglobale $_COOKIE en précisant le nom du cookie :

echo $_COOKIE["nom"];

Pour modifier un cookie, il suffit de le redéfinir avec la fonction setcookie().

Enfin, pour supprimer un cookie, vous utiliserez également la fonction setcookie(), en précisant une durée de vie inférieure au timestamp actuel. Par exemple :

setcookie("prenom", "pierre", time() - 3600, null, null, false, true);
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply