English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel PHP de base

Tutoriel PHP avancé

PHP & MySQL

Manuel de référence PHP

Cookie PHP

Dans ce tutoriel, vous apprendrez à utiliser les cookies PHP pour stocker une petite quantité d'informations dans le navigateur de l'utilisateur.

Qu'est-ce qu'un Cookie

Un cookie est un petit fichier texte qui vous permet de stocker une petite quantité de données sur l'ordinateur de l'utilisateur (maximum4KB environ). Ils sont généralement utilisés pour suivre des informations telles que le nom d'utilisateur, afin que le site puisse récupérer cette information lors de la prochaine visite de l'utilisateur pour afficher des pages personnalisées spécifiques.

Aide :Chaque fois que le navigateur demande une page au serveur, toutes les données du cookie sont automatiquement envoyées au serveur dans la requête.

Définir le Cookie

La fonction setcookie() est utilisée pour définir des cookies en PHP. Assurez-vous d'appeler la fonction setcookie() avant tout output généré par le script, sinon le cookie ne sera pas défini. La syntaxe de base de la fonction peut être donnée de la manière suivante :

setcookie(name, value, expire, path, domain, secure);

Les paramètres de la fonction setcookie() ont le sens suivant :

ParamètresDescription
nameLe nom du cookie.
valueLa valeur du cookie. Comme cette valeur est stockée sur l'ordinateur de l'utilisateur, n' stockez pas d'informations sensibles.
expiresDate d'expiration au format timestamp UNIX. Après cette date, le cookie ne sera plus accessible. La valeur par défaut est 0
pathDéfinissez le chemin sur le serveur où le cookie est disponible. Si il est réglé sur/,le cookie sera disponible dans tout le domaine.
domainSpécifiez le domaine disponible pour les cookies, par exemple : fr.oldtoolbag.com.
secureCe champ (s'il existe) indique que le cookie ne sera envoyé que si une connexion HTTPS sécurisée existe.

Aide :Si la date d'expiration du cookie est définie sur 0 ou omise, le cookie expirera à la fin de la session, c'est-à-dire lorsque le navigateur est fermé.

Voici un exemple de création d'un cookie nommé userName en utilisant la fonction setcookie() et de l'assignation de la valeur John Carter. En même temps, la date d'expiration du cookie est spécifiée.30 jours (}}30 jours * 24 heures * 60 min * 60 sec).       

<?php
//Configurer un cookie
setcookie("username", "John Carter", time())+30*24*60*60);
?>

Remarque :Tous les paramètres, sauf le nom, sont optionnels. Vous pouvez également remplacer les paramètres par une chaîne vide ("") pour les ignorer, mais pour ignorer le paramètre expire, utilisez zéro (0) car il s'agit d'un entier.

Avertissement :Ne stockez pas de données sensibles dans les cookies, car les utilisateurs malveillants pourraient manipuler ces données. Pour stocker des données sensibles en toute sécurité, utilisezSession.

Accéder aux valeurs de cookie

La variable superglobale PHP $_COOKIE est utilisée pour rechercher les valeurs de cookie. Il s'agit généralement d'un tableau associatif contenant la liste de toutes les valeurs de cookie envoyées par le navigateur pour la requête en cours, avec le nom du cookie comme clé. Vous pouvez accéder à une valeur de cookie individuelle en utilisant des symboles de tableau standard, par exemple, pour afficher le cookie utilisateur nommé dans l'exemple précédent, vous pouvez utiliser le code suivant :

<?php
//Accéder à une seule valeur de cookie
echo $_COOKIE["username"];
?>

Le code PHP de l'exemple précédent génère la sortie suivante.

John Carter

Il est préférable de vérifier si le cookie a été configuré avant d'accéder à sa valeur. Pour cela, vous pouvez utiliser la fonction PHP isset() comme suit :

<?php
//Vérifier si le cookie a été configuré
if (isset($_COOKIE["username"])) {
    echo "Bonjour " . $_COOKIE["username"];
} else {
    echo "Bienvenue, invité!";
}
?>

Vous pouvez utiliser la fonction print_r($_cookie) pour afficher la structure de l'array associatif $_cookie, comme vous le feriez pour d'autres tableaux.

Supprimer les cookies

Vous pouvez supprimer un cookie en appelant la même fonction setcookie() avec le nom du cookie et toute autre valeur (par exemple, une chaîne vide), mais vous devez la configurer pour expirer avant maintenant, comme dans l'exemple suivant :

<?php
//Supprimer les cookies
setcookie("username", "", time())-3600);
?>

Aide :Vous devriez transmettre les noms, domaines et autres paramètres utilisés lors de la création initiale du Cookie pour vous assurer que le bon Cookie est supprimé.