PHP Cookies


Qu'est-ce qu'un cookie ?

Un cookie est souvent utilisé pour identifier un utilisateur. Il s'agit d'un petit fichier que le serveur place sur l'ordinateur de l'utilisateur. Chaque fois que cet ordinateur demande une page via un navigateur, il envoie également le cookie. Avec PHP, vous pouvez créer et récupérer des valeurs de cookie.


Créer des cookies avec PHP

Un cookie est créé avec la fonction setcookie() .

Syntaxe

setcookie( nom, valeur, expiration, chemin, domaine, sécurisé, httponly );

Seul le paramètre nom est requis. Tous les autres paramètres sont optionnels.


PHP Créer/Récupérer un cookie

L'exemple suivant crée un cookie nommé "user" avec la valeur "John Doe". Le cookie expirera après 30 jours (86400 * 30). Le "/" signifie que le cookie est disponible sur l'ensemble du site web (sinon, sélectionnez le répertoire de votre choix).

Nous récupérons ensuite la valeur du cookie "user" (en utilisant la variable globale $_COOKIE). Nous utilisons également la fonction isset() pour vérifier si le cookie est défini :

Exemple

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 jour
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Le cookie nommé '" . $cookie_name . "' n'est pas défini !";
} else {
echo "Le cookie '" . $cookie_name . "' est défini !<br>";
echo "La valeur est : " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>

Remarque : La fonction setcookie() doit apparaître AVANT la balise <html>.

Remarque : La valeur du cookie est automatiquement encodée en URL lors de son envoi, et automatiquement décodée lors de sa réception (pour éviter l'encodage en URL, utilisez setrawcookie() à la place).



Modifier la valeur d'un cookie

Pour modifier un cookie, il suffit de le redéfinir en utilisant la fonction setcookie() :

Exemple

<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Le cookie nommé '" . $cookie_name . "' n'est pas défini !";
} else {
echo "Le cookie '" . $cookie_name . "' est défini !<br>";
echo "La valeur est : " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>

Supprimer un cookie

Pour supprimer un cookie, utilisez la fonction setcookie() avec une date d'expiration dans le passé :

Exemple

<?php
// définir la date d'expiration à une heure auparavant
setcookie("user", "", time() - 3600);
?>
<html>
<body>

<?php
echo "Le cookie 'user' a été supprimé.";
?>

</body>
</html>

Vérifier si les cookies sont activés

L'exemple suivant crée un petit script qui vérifie si les cookies sont activés. Tout d'abord, essayez de créer un cookie de test avec la fonction setcookie() , puis comptez la variable de tableau $_COOKIE :

Exemple

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>

<?php
if(count($_COOKIE) > 0) {
echo "Les cookies sont activés.";
} else {
echo "Les cookies sont désactivés.";
}
?>

</body>
</html>

Référence complète des fonctions réseau PHP

Pour une référence complète des fonctions réseau, consultez notre Référence réseau PHP complète.