Les Cookies en PHP 1. C'est quoi un cookie
Un cookie est le nom donné à une information stockée sur le disque d'un utilisateur pour pouvoir réutiliser des informations déjà saisies telle qu'un login, un Id, un encours d'achat... Ces informations sont donc souvent utilisées pour gérer les achats en ligne, les mails, et autres comptes divers. Il existe bien sur plusieurs sortes de cookie :
Le cookie dépend également du site. C'est à dire qu'un cookie ne peut être utilisé par 2 sites différents. Ainsi, même si je le voulais, je ne pourrais pas aller voir dans vos cookies pour savoir si vous avez un compte chez Yahoo par exemple ! Tous ces paramètres font que les cookies sont très complets, et assez sécurisés contrairement à ce qui avait été dit au début des cookies. 2. Utiliser les cookies
2. 1. Introduction
En PHP, j'oserais dire rien de plus simple ! En fait, ce qui est compliqué, c'est plus de comprendre le principe des cookies ! Les cookies sont envoyés dans l'en-tête HTTP de la page. Ce qui veut dire que le plus gros problèmes avec les cookies c'est de les utiliser au bon moment, et surtout qu'on ne peut pas les modifier n'importe quand ! Mais bon, un bon exemple valant mieux que beaucoup de théorie, on va passer à la partie pratique ! 2. 2. Ecrire un cookie
En PHP, un cookie peut être enregistré avec la commande "setcookie" !!! Ca alors, c'est hyper compliqué de s'en rappeler... Si vous souhaitez fixer le cookie "langue" à la valeur "fr" (par exemple pour des sites en plusieurs langues), il suffit de faire le code suivant : <?php Et voila !
Attention, il faut noter que le code suivant ne marchera pas :
setCookie("langue","fr"); ?> <HTML> En effet, les cookies étant passé en en-tête HTTP vers le serveur, il ne peuvent être traité qu'avant l'affichage
du moindre caractère. Pour obtenir la même chose, mais pour que ça marche, vous devez écrire :<?php setCookie("langue","fr"); ?> <BODY> Un texte bidon ici. </BODY> </HTML> <?php Ce code fonctionne. On voit que le cookie est bien envoyé avant l'affichage de la première ligne, la où ils doivent
être.
setCookie("langue","fr"); ?> <HTML> <BODY> Un texte bidon ici. </BODY> </HTML> La syntaxe de setCookie est la suivante : setcookie ( Nom_du_Cookie, Valeur, Durée_de_vie, Répertoire, Domaine, Sécurisé)
Signification des variables :
Voici donc quelques exemples d'utilisation des cookies pour bien comprendre le fonctionnement : <?php En réalité, le cookie "permanent" n'existe pas, mais il suffit de fixer un nombre de seconde de
par exemple 1000000000, ce qui fait deja plus de 30 ans !// ajout d'un cookie standard setCookie("langue","fr"); // le cookie a une durée de vie d'1 minute setCookie("langue","fr",time()+60); // le cookie a une durée de vie de 365 jours setCookie("langue","fr",time()+60*60*24*365); // le cookie "langue" prend la valeur de "$langue" et durera 10 minutes setCookie("langue",$langue,time()+600); // le cookie ne sera lisible que depuis le répertoire "/multilangue/" du site setCookie("langue","fr",time()+600,"/multilangue/"); ?> - Les cookies doivent être en tout début du fichier PHP - Les cookies ne s'applique pas directement à la page courante, mais uniquement lors du prochain chargement 2. 3. Lire un cookie
Il existe 2 méthodes pour lire un cookie : <?php echo $langue; echo $HTTP_COOKIE_VARS["langue"]; ?> 2. 4. Effacer un cookie
<?php Ceci permet d'effacer le cookie. En fait, le principe est simple : on fixe un cookie sans valeur et avec une expiration
immédiate (temps à 0) !setCookie("langue","",0); ?> 3. Où trouvez les cookies enregistrés ?
Seul les cookies "permanent" sont sauvegardés dans des fichiers. Les cookies de sessions ne sont enregistrés que dans la mémoire vive. Si vous avez un problème avec les cookies de sessions, vous devez en fait redémarrer votre navigateur. 3. 1. IE
3.1.1. Win NT/2000/XP
dans le répertoire "profiles" de Windows, il faut aller dans le répertoire du compte utilisé, puis tout simplement dans le répertoire "cookies". 3.1.2. Win 95/98
dans le répertoire "cookies" du répertoire d'installation de Windows. 3. 2. Netscape / Mozilla
3.2.1. Général
Netscape garde ses cookies dans le fichier "cookies.txt". Ce fichier peut se trouver un peu n'importe où. 3.2.2. Win NT/2000/XP
Dans le répertoire "profiles" du répertoire d'installation de Windows, puis dans le répertoire avec le nom du compte utilisé, ensuite, dans "Application Data", on retrouve un repertoire "Mozilla". Le fichier "cookies.txt" se trouve dans l'un des répertoires fils de celui-ci. 3.2.3. Win 95/98
Dans le répertoire d'installation de Windows, on retrouve le répertoire "Mozilla\profiles\" dans lequel l'un des sous-répertoires comprends le fichier "cookies.txt" qui correspond à l'utilisateur qui vous intéresse. 3. 3. Opera
Les cookies sont enregistrés dans le fichier "cookies4.dat" dans le répertoire d'installation d'Opera. Ce fichier ne peut être édité directement dans un fichier texte, par contre, il peut l'être avec le "Opera File Explorer" d'Opera (ici). |