PHP : Les cookies

Noter ce cours :

Qu'est-ce qu'un cookie ?

Les cookies sont de petits fichiers textes placés sur votre disque dur par les sites internet qui les utilisent. A chaque consultation d'une page, votre navigateur envoie dans les en-têtes HTTP, le nom et les données des cookies que le site a créés, et qui sont encore valides.

Pour créer un cookie sur le navigateur de l'internaute (le client), le site internet place une mention dans les requêtes qu'il envoie au navigateur. Celui-ci les interprète et décide de créer un cookie disposant d'un nom, d'une valeur et d'une date de fin de validité. Chaque site internet peut créer plusieurs cookies, mais ils ont tous, chacun, une taille maximale de 4 Ko. N'espérez donc pas stocker de grosses informations par ce moyen.

Les cookies ne sont consultables que par le site qui les a créés. Il sera donc impossible pour un site internet de lire l'ensemble de vos cookies.

Ce mécanisme de communication permet de conserver des données de pages en pages, bien qu'on préfère en PHP les sessions, bien plus sécurisées et situées côté serveur.

Créer un cookie en PHP

On utilise la fonction PHP setcookie() pour créer un cookie.

Exemple de création d'un cookie

<?php
     setcookie('moncookie','Anthony',time()+$validite);
?>

Création d'un cookie valable 7 jours

La variable $validite est un nombre entier spécifiant le nombre de secondes (par rapport au temps actuel) pendant lesquelles le cookie sera valide. Si vous souhaitez créer un cookie valable 7 jours, il faudra compter 7 * 24 * 3600 secondes.

<?php
    setcookie('moncookie','Anthony',time()+ 3600 24 7);
?>

D'autres paramètres existent pour la fonction setcookie() mais je n'en parlerai pas ici. Ils permettent entre-autres de restreindre la visibilité des cookies à un ou plusieurs sous-domaines de votre site, ou encore de ne pas rendre visible le cookie via Javascript. Des explications plus détaillées sont disponibles sur fr.php.net

Attention ! l'usage de la fonction setcookie() se fait avant toute écriture de code HTML ou textuel. Si vous ne respectez pas cette consigne, une erreur Headers already sent by apparaîtra. Vous pouvez utiliser la bufferisation de sortie en PHP pour résoudre ce problème si vous n'avez pas totalement la main sur votre code.

Supprimer un cookie

Pour supprimer un cookie, c'est très simple. A l'aide de la fonction setcookie(), vous passez en paramètre le nom du cookie que vous souhaitez supprimer, et c'est tout !

<?php
     setcookie('moncookie','');
?>

Lire la valeur d'un cookie

Si vous vous souvenez, nous avons vu plus haut que l'utilisation des cookies était en partie similaire à celle des sessions. C'est bien le cas !

Pour lire un cookie nommé moncookie, vous devrez utiliser le code suivant :

<?php
    echo $_COOKIE['moncookie'];
?>
Vous avez aimé cet article intitulé PHP : Les cookies ? Partagez-le !
Vulgarisation-informatique.com
Cours en informatique & tutoriels