FAQ PHP
FAQ PHPConsultez toutes les FAQ
Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 18 septembre 2021
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 :
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 :
<?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 :
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.
$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.