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.
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
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'];
?>