Cookies PHP
Qu'est-ce qu'un cookie ?
Un cookie est souvent utilisé pour identifier un utilisateur. Un cookie est un petit fichier que le serveur intègre sur l'ordinateur de l'utilisateur. Chaque fois que le même ordinateur demande une page avec un navigateur, il enverra également le cookie. Avec PHP, vous pouvez à la fois créer et récupérer des valeurs de cookies.
Créer des cookies avec PHP
Un cookie est créé avec la setcookie()
fonction.
Syntaxe
setcookie(name, value, expire, path, domain, secure, httponly);
Seul le paramètre name est obligatoire. Tous les autres paramètres sont facultatifs.
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 tout le site (sinon, sélectionnez le répertoire que vous préférez).
On récupère alors la valeur du cookie "user" (grâce à la variable globale $_COOKIE). Nous utilisons également la isset()
fonction pour savoir si le cookie est installé :
Exemple
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Remarque : Lasetcookie()
fonction doit apparaître AVANT la balise <html>.
Remarque : La valeur du cookie est automatiquement encodée en URL lors de l'envoi du cookie et automatiquement décodée lors de sa réception (pour empêcher l'encodage d'URL, utilisez à la setrawcookie()
place).
Modifier une valeur de cookie
Pour modifier un cookie, il suffit de (ré)installer le cookie à l'aide de la setcookie()
fonction :
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 "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Supprimer un cookie
Pour supprimer un cookie, utilisez la setcookie()
fonction avec une date d'expiration dans le passé :
Exemple
<?php
// set the expiration date to one hour ago
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>
Vérifiez si les cookies sont activés
L'exemple suivant crée un petit script qui vérifie si les cookies sont activés. Essayez d'abord de créer un cookie de test avec la setcookie()
fonction, puis comptez la variable de tableau $_COOKIE :
Exemple
<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies are disabled.";
}
?>
</body>
</html>
Référence complète du réseau PHP
Pour une référence complète des fonctions réseau, consultez notre référence complète sur le réseau PHP .