Les cookies en PHP
Un cookie est un petit fichier texte qui vous permet de stocker une petite quantité de données (près de 4Ko) sur l’ordinateur de l’utilisateur. Ils sont généralement utilisés pour garder une trace des informations telles que le nom d’utilisateur que le site peut récupérer pour personnaliser la page lors de la prochaine visite de l’utilisateur sur le site.
Créer un cookie en PHP
La fonction setcookie() est utilisée pour créer un cookie en PHP. Assurez-vous d’appeler la fonction setcookie() avant toute sortie générée par votre script sinon le cookie ne sera pas crée. La syntaxe de base de cette fonction est comme suite :
setcookie(name, value, [expire], [path], [domain], [secure]);
La fonction setcookie() nécessite six arguments :
- Name : Il est utilisé pour définir le nom du cookie.
- Value : Il est utilisé pour définir la valeur du cookie.
- Expire : Il est utilisé pour définir l’heure d’expiration du cookie au-delà le cookie n’est plus accessible.
- Path : Il est utilisé pour spécifier le chemin sur le serveur pour lequel le cookie sera disponible.
- Domain : Il est utilisé pour spécifier le domaine pour lequel le cookie est disponible.
- Security : Il est utilisé pour indiquer que le cookie ne doit être envoyé que si une connexion HTTPS sécurisée existe.
Voici un exemple qui utilise la fonction setcookie() pour créer un cookie nommé « username » et lui assigner la valeur « Jean Babtise ». Elle spécifie aussi que le cookie expirera après 2 jours (2 jours * 24 heures * 60 minutes * 60 secondes).
<?php setcookie("username", "Jean Babtise", time()+2*24*60*60); ?>
Accès aux valeurs des cookies
La variable superglobale $_COOKIE en PHP est utilisée pour récupérer la valeur d’un cookie. C’est typiquement un tableau associatif qui contient une liste de toutes les valeurs de cookies envoyées par le navigateur dans la requête courante, avec le nom du cookie comme clé. La valeur du cookie est accessible en utilisant la notation standard des tableaux, par exemple pour afficher le cookie « username » défini dans l’exemple précédent, vous pourriez utiliser le code suivant.
<?php echo $_COOKIE["username"]; ?>
La sortie :
Jean Babtise
Il est recommandé de vérifier si un cookie est défini ou non avant d’accéder à sa valeur. Pour faire cela, vous pouvez utiliser la fonction PHP isset(), comme ceci:
<?php if(isset($_COOKIE["username"])){ echo $_COOKIE["username"]; } ?>
Suppression de cookies
Vous pouvez supprimer un cookie en appelant la même fonction setcookie() avec le nom du cookie et n’importe quelle valeur (telle qu’une chaîne vide), mais cette fois, vous devez définir la date d’expiration dans le passé, comme indiqué dans l’exemple ci-dessous:
<?php setcookie("username", "", time()-3600); ?>