Soutenez-nous

FAQ PHPConsultez toutes les FAQ

Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 29 juillet 2013 

 
OuvrirSommaireSécuritéCookies

Un cookie est un petit fichier texte placé dans l'ordinateur de l'internaute à la demande du serveur lors de la visite d'une page. Ce fichier permet de stocker un petit nombre d'informations, comme un mot de passe, le nombre de visites, etc.

A utiliser avec parcimonie, car un internaute peut les supprimer à la main ou configuer son navigateur pour les refuser.

AVERTISSEMENT : Les cookies peuvent être considérés par certaines personnes comme une violation de leur vie privée. La CNIL (Commission Nationale de l'Informatique et des Libertés, France) recommande aux webmasters qui ont recours aux cookies de le signaler très clairement sur leur page d'accueil.

Ainsi, il est souvent préférable d'utiliser les sessions à la place des cookies.

Un cookie peut être envoyé depuis un script PHP avec la fonction setCookie(). Cette fonction doit être utilisée avant tout envoi d'en-tête HTTP au navigateur (il ne faut rien afficher avant d'utiliser cette fonction).

1. Création de cookie Cette fonction prend pour paramètres :

  • $name : le nom du cookie (cette chaîne de caractères ne doit contenir ni virgule, ni espace, ni les deux points(:))
  • $value : la valeur du cookie
  • $expires : la date d'expiration du cookie au format timestamp Unix (c'est-à-dire le nombre de secondes écoulées depuis le 1er janvier 1970), s'il n'est pas spécifié, le cookie sera supprimé lors de la fermeture du navigateur
  • $path : le répertoire du site web pour lequel le cookie est valide (les sous-répertoires sont acceptés) : par défaut le répertoire actuel
  • $domain : le nom de domaine pour lequel le cookie est valide
  • $secure : indique (0 ou 1) si le cookie doit être transmis via une connexion sécurisée par le protocole HTTPS

Tous les paramètres sont optionnels sauf $name.

Exemple :

 
Sélectionnez
<?php
setcookie("Visites", "1", time()+24*60*60, "/", "monsite.fr", 0);
?>

Cet exemple envoie le cookie nommé Visites de valeur 1, de date d'expiration : le jour suivant (aujourd'hui + 24 heures). Il est valide dans tout le site web (c'est-à-dire depuis la racine / du site) pour le domaine monsite.fr. Il ne requiert pas de connexion sécurisée par HTTPS.

2. Lecture de cookie La puissance du PHP fait qu'il n'est pas nécéssaire d'aller chercher quoi que ce soit : PHP le fait tout seul automatiquement. Tous les cookies valides pour le domaine et le répertoire du script PHP en cours vont être mis en mémoire. Ainsi vont être créées des variables portant le nom des cookies et valant leur valeurs respectives. Le tableau $_COOKIE contient la liste des cookies disponibles.

Exemple :

 
Sélectionnez
<?php
echo $_COOKIE['Visites'];// affiche "1"
?>

3. Suppression de cookie Pour supprimer un cookie, c'est très simple, il suffit de le recréer à l'identique mais sans valeur et avec une date d'expiration dépassée.

Exemple :

 
Sélectionnez
<?php
setcookie("Visites", "", time()-100, "/", "monsite.fr", 0);
?>
Mis à jour le 6 août 2008  par Cyberzoide

Il n'est pas possible de passer autre chose dans un cookie que du texte. Grâce à la fonction serialize(), nous pouvons passer un tableau dans un cookies.

 
Sélectionnez
$tableau = array("moto","voiture","vélo");
$tableau_serialize = serialize($tableau);
print_r($tableau_serialize);// Affiche a:3:{i:0;s:4:"moto";i:1;s:7:"voiture";i:2;s:5:"vélo";}

// insertion dans un cookie
setcookie("Visites", $tableau_serialize, time()+24*60*60);

//récupération du tableau
$tab_cookies = unserialize($_COOKIE['Visites']);
print_r($tab_cookies); // Array ( [0] => moto [1] => voiture [2] => vélo ) 

Attention, la taille des cookies est limitée à 4 ko.

Créé le 8 mars 2011  par Gérard Ernaelsten
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.