Leçon 13 : Les cookies

Comment et quels types de renseignements sont collectés par les sites web sur leurs utilisateurs, en particulier ce qu'il en advient, tout cela constitue un sujet brûlant. Les cookies sont souvent cités comme exemple de collecte de renseignements et de menace à l'encontre de la vie privée. Doit-on réellement s'en inquiéter ? Jugez par vous-même. À la fin de cette leçon, vous saurez ce qu'on peut faire avec des cookies.

Qu'est-ce qu'un cookie ?

Un cookie est un petit bout de fichier texte dans lequel un site web peut stocker diverses informations. Les cookies sont enregistrés sur le disque dur de l'utilisateur et non sur le serveur.

La plupart des cookies expirent (s'auto-détruisent) après un certain délai, qui peut aller d'une minute à plusieurs années. Toujours est-il, l'utilisateur peut également identifier et supprimer tout cookie sur son ordinateur.

La plupart des navigateurs, tels qu'Internet Explorer de Microsoft, Firefox de Mozilla et Chrome de Google, sont configurables et laissent à l'utilisateur le choix d'accepter ou non un cookie. Mais alors pourquoi ne pas dire non à tous les cookies ? C'est possible. Néanmoins beaucoup de sites web ne fonctionneraient pas comme prévu sans eux, car dans beaucoup de situations les cookies améliorent la convivialité et la fonctionnalité du site web.

Comment est stockée l'information dans un cookie ?

Il est facile d'établir ou modifier un cookie dans PHP avec la fonction documentationsetcookie. Dans le premier exemple, nous créerons un cookie et fixerons une valeur.

On a d'abord besoin d'un nom pour le cookie. Dans cet exemple, nous emploierons le nom "HTMLTest". Puis nous fixerons la valeur du cookie comme ceci :


	<?php

	// Setting the cookie
	setcookie("HTMLTest", "This is a test cookie");

	?>

	

Par défaut, un cookie est conservé jusqu'à la fermeture du navigateur, mais on peut aisément le modifier en lui ajoutant un autre paramètre pour en fixer la date d'expiration :


	<?php

	// Setting the cookie
	setcookie("Name", "C. Wing, time()+3600);
	setcookie("Interests", "plane spotting", time()+3600);

	?>

	

L'indication "Time()+3600" fait expirer le cookie dans 3600 secondes (60 minutes) à compter du présent.

Dans l'exemple précédent, nous stockons des renseignements à propos du nom et des centres d'intérêt de l'utilisateur. Ces renseignements peuvent servir, par exemple, à adapter le site web spécifiquement au visiteur donné.

Comment récupère-t-on la valeur d'un cookie ?

Pour obtenir la valeur du cookie, on utilise documentation$_COOKIE. Par exemple, si on veut les renseignements collectés dans l'exemple précédent, on fait comme ceci :


	<?php

	// Retrieve values from the cookie
	$strName = $_COOKIE["Name"];
	strInterest = $_COOKIE["Interest"];

	// Write to the client
	echo "<p>" . strName . "</p>"
	echo "<p>Your interest is . " strInterest . "</p>"

	?>

	

Qui peut lire le cookie ?

Par défaut, un cookie est lisible dans le même domaine de second niveau (par exemple, html.net) où il a été créé. Toutefois, en utilisant les paramètres domaine et chemin, on peut augmenter les restrictions sur le cookie selon la syntaxe suivante :


	setcookie(nom, valeur, date d'expiration, chemin, domaine);

	

Voyons un exemple :


	<?php

	// Setting the cookie: name, value, expiration time, path, domain
	setcookie("Name", "C. Wing", time()+60*60*24*365, "/tutorials/php/", "www.html.net");
	?>

	

Dans l'exemple ci-dessus, nous établissons un cookie nommé "Name" avec la valeur "C. Wing". Le cookie expire au bout d'un an (60 secondes * 60 minutes * 24 heures * 365 jours), et il n'est lisible que par les sites qui se trouvent dans le répertoire "/tutorials/php/" sur le (sous-)domaine "www.html.net".

Exemple de cookie

Nous pouvons essayer d'enregistrer un cookie de test sur votre ordinateur, puis voir à quoi il ressemble.

Le code suivant installe le cookie :


	<?php

	// Setting the cookie
	setcookie("HTMLTest", "This text is in a cookie!", time()+60*60*24, "/tutorials/php/", "www.html.net");

	// Write the information to the client
	echo $_COOKIE ["HTMLTest"];

	?>

	

Le cookie est placé sur votre disque dur. En fonction de votre système d'exploitation, vos cookies seront enregistrés dans des endroits différents. Une fois ceux-ci localisés, ils auront probablement cet aspect :

From Windows Explorer - folder Cookies

Comme vous le voyez, un cookie est du texte ordinaire qui peut être lu, par exemple, avec le programme Bloc-notes. Le contenu du cookie tout juste créé ressemblera à ceci :


	HTMLTest TEXT=This+text+is+in+a+cookie% 21 www.html.net/tutorials/php 0 80973619229399148 4216577264 29399141 *

	

Nous n'entrerons pas dans les détails des différents codes ; notez simplement que l'utilisateur à tout contrôle sur les cookies sur son ordinateur.

Dans cette leçon, nous avons vu ce que les cookies peuvent faire mais non ce qu'il ne peuvent pas faire. On s'inquiète couramment de ce que certains sites utilisent des cookies pour des activités répréhensibles. Mais pour la plupart, les cookies rendent les sites plus conviviaux ou pertinents pour les utilisateurs individuels.

Si vous choisissez d'utiliser des cookies sur votre site, une bonne idée serait de le dire à vos utilisateurs. Cette annonce peut être faite, par exemple, dans une politique concernant la vie privée ou lors d'un processus d'enregistrement.



<< Leçon 12 : Les sessions

Leçon 14 : Le système de fichiers >>