Cookies

Article écrit par kazhar

En surfant sur le web, vous avez pu constater que certains sites etaient en mesure de vous "reconnaitre".
Par exemple, si vous etes membre PHPortail, vous pouvez constater que vous restez identifié, meme si vous vous deconnectez , et que vous eteignez votre ordinateur.
Il existe en effet une technique, permettant aux sites de placer un petiti fichier texte sur votre ordinateur, contenant des données, comme par exmeple, un nom d'utilisateur et un mot de passe.

Sur windows, vous pouvez voir ou se trouvent vos cookies créés par Internet Explorer à l'adresse suivante: C:\Documents And Settings\nom_d'utilisateur\cookies

Beaucoup de personnes pensent que les cookies sont des portes d'entrées pour les virus, ou pour les pirates.
Mais, les cookies ne pouvant contenir que du texte, il ne peuvent pas vraiment s'averer très génants. de plus, ils ne sont lisibles que par le domaine qui les a emis (par exemple, www.phportail.net, ou pub.phportail.net)

Dans le chapitre des mails, ou bien ,de la creation de fichiers, vous avez decouvert la fonction header. Les cookies sont transmis dans l'en-tête HTTP des requetes et des réponses:


Code :
header("Set-Cookie: moncookie=hello; path=/; expires Mon, 23-Jun-2003 13:46:00 GMT");



Il existe, heureusement, une fonction, permettant la creation simplifiée d'un cookies:


Code :
setcookie("moncookie", "hello");
echo $moncookie;



La lecture du cookie est elle aussi très simple: il suffit de lire la variable...

Comme les cookies sont transmis dans l'en-tête HTTP, leur utilisation implique les memes contraintes que pour la fonction header(). Interdiction absolue d'afficher quoi que ce soit avant d'utiliser setcookie().

Lorsque vous desirez supprimer un cookie, c'est très simple. Il vous suffit de redefinir celui-ci vide:

Code :
setcookie("moncookie"); // supprime le cookie moncookie



Tout n'est tout de meme pas permis avec les cookies. VCoici uine liste non exhaustive des limitations:
- Seul le site qui a créé le cookie peut y acceder
- La taille d'un cookie doit etre inferieure à 4 Ko
- Le nombre de cookies créés par un domaine donné est limitée à 20.
- La durée de vie maximum d'un cookie est de 31536000 secondes, soit un an.

La fonction setcookie() peut prendre d'autres paramètres:
- La date d'expiration: en secondes. La fonction time() renvoyant la date actuelle en secondes
- Le chemin: Indique quelle partie du site peut avoir accès au cookie
- Le domaine: indique quel domaine peut avoir accès au site
- Un indicateur de sécurité: si sa valeur est 1, il indique que la valeur du cookie ne peut etre transmise que si nous sommes en HTTPS (HTTP sécurisé par du SSL).

exemple :

Code :
setcookie("moncookie", "hello", time(+3600), "/", ".phportail.net", 1);
/* Le cookie est créé ici pour une heure. Tous les scripts situés sur le domaine .phportail.net peuvent y acceder, à condition que les transmissions soient cryptées */



En ne precisant pas la date d'expiration, nous créons un cookie de sessions. Il existera tant que le navigateur restera ouvert. Des sa fermeture, le cookie sera automatiquement effacé.

Source : http://www.phportail.net