Les cookies PHP
Un cookie dans le langage PHP na rien à voir avec les gâteaux de grand mère
(ça c'est dit !). Un cookie est un fichier créé par le site que vous consultez (programmé par le webmaster) et implanté dans l'ordinateur du client si celui-ci l'autorise. Un cookie contient généralement des données qui permettent par exemple de reconnaitre un utilisateur de votre site (membre) et de le connecter automatiquement. C'est le principe que j'utilise dans mon système de commentaire qui vous évite ainsi de retaper sans cesse les mêmes informations quand vous le ré-utilisez.Comment créer un cookie
Pour créer un cookie, PHP met à disposition une fonction nommé setcookie() qui peut prendre plusieurs paramètres.bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )En version plus simple :
setcookie(nom_du_cookie,valeur_du_cookie,expiration_du_cookie,chemin_sur_le_serveur, domaine,sécurisation,protocole_http);nom_du_cookie : Correspond au nom du cookie.
valeur_du_cookie : Correspond à la valeur du cookie. Cette valeur est stockée sur l'ordinateur du client alors évitez de stockez des informations importantes.
expiration_du_cookie : Correspond au temps après lequel le cookie expire. Ce "temps" utilise le timestamp Unix donc des secondes. Si celui-ci n'est pas précisé, le cookie est supprimé à la fin de la sessions.
chemin_sur_le_serveur : Correspond au chemin sur le serveur sur lequel le cookie sera disponible. Si la valeur est '/', le cookie sera disponible sur l'ensemble du domaine. Si la valeur est '/dossier1/', le cookie sera uniquement disponible dans le répertoire /dossier1/ ainsi que tous ses sous-répertoires.
domaine : Correspond au domaine où le cookie est disponible.
sécurisation : Indique si le cookie doit uniquement être transmis à travers une connexion sécurisée HTTPS depuis le client.
protocole_http : Lorsque ce paramètre vaut TRUE, le cookie ne sera accessible que par le protocole HTTP. Cela signifie que le cookie ne sera pas accessible via des langages de scripts, comme Javascript.
Je vous rassure tout de suite, vous n'êtes pas obligé d'utiliser tout les paramètres et bon nombre de webmaster n'utilise que les 3 premiers
et c'est ce que nous allons voir ici.<?php //valeur du coockie $valeur = 'Vive moi!'; //on créé un simple cookie nommé "moncookie" setcookie("moncookie", $valeur); //on créé un cookie nommé "moncookie" avec une expiration d'une heure setcookie("moncookie", $valeur, time()+3600); ?>Vous pouvez également inclure directement la valeur du cookie sans être obligé d'utiliser une variable.
<?php //on créé un simple cookie nommé "moncookie" qui expire dans une heure setcookie("moncookie", "Vive moi!", time()+3600); ?>setcookie() : la fonction pour créer le cookie.
moncookie : le nom que je donne au cookie.
Vive moi! : la valeur du cookie.
time() : fonction permettant de récupérer le timestamp actuel. Le timestamp appelé aussi timestamp unix est une fonction qui permet d'obtenir le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit GMT.
+3600 : ajoute 3600 secondes au timestamp donc 1 heure.
Note : La fonction setcookie() doit être utilisée avant tout envoi de données HTML ou fonctions comme echo(),print ou printf().
Lecture d'un cookie
Pour lire un cookie c'est très simple, on utilise la variable prédéfinie $_COOKIE ou $HTTP_COOKIE_VARS (depuis PHP 4.1.0 ou supérieur) avec en paramètre le nom du cookie $_COOKIE['nom_du_cookie'] ou $HTTP_COOKIE_VARS['nom_du_cookie'] ou plus simplement $moncookie (si registar_globals est à "on" dans php.ini).<?php //valeur du coockie $valeur = 'Vive moi!'; //on créé un simple cookie nommé "moncookie" setcookie("moncookie", $valeur); //on affiche le cookie echo $_COOKIE['moncookie']; //ou echo $HTTP_COOKIE_VARS['moncookie']; //ou echo $moncookie; ?>
Note : Le contenu d'un cookie ne peut être lut que si vous avez changé de page ou si vous avez rechargé la page!
Détruire un cookie
Pour supprimer un cookie on utilise la fonction setcookie() avec en paramètre le nom du cookie à détruire.<?php //on détruit le cookie nommé moncookie setcookie('moncookie'); ?>Une autre méthode consiste à définir une date d'expiration dépassée.
<?php //on détruit le cookie nommé moncookie setcookie('moncookie', '', 0); ?>
Vérifier l'existance d'un cookie
<?php if(isset($_COOKIE['moncookie'])){ echo 'Le cookie existe.'; } else{ echo 'Le cookie n\'existe pas!'; } ?>

Signaler une erreur
Les sessions PHP
Le langage PHP
Créer un site en utilisant les include en php


