Utiliser des cookies avec PHP

En tant que développeur de site Web, vous pouvez utiliser PHP pour définir des cookies qui contiennent des informations sur les visiteurs de votre site Web. Les cookies stockent des informations sur un visiteur du site sur l'ordinateur du visiteur qui peuvent être consultées lors d'une visite de retour. Une utilisation courante des cookies consiste à stocker un jeton d'accès afin que l'utilisateur n'ait pas besoin de se connecter à chaque fois qu'il visite votre site Web. Les cookies peuvent également stocker d'autres informations telles que le nom de l'utilisateur, la date de la dernière visite et le contenu du panier.

Bien que les cookies existent depuis des années et que la plupart des gens les aient activés, certains utilisateurs ne les acceptent pas en raison de problèmes de confidentialité ou les suppriment automatiquement à la fermeture de leur session de navigation. Étant donné que les cookies peuvent être supprimés par un utilisateur à tout moment et sont stockés au format texte brut, ne les utilisez pas pour stocker des éléments sensibles.

Comment définir un cookie en utilisant PHP

En PHP, le setcookie () définit un cookie. Il est envoyé avec les autres en-têtes HTTP et transmet avant que le corps du HTML ne soit analysé.

Un cookie suit la syntaxe:

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

Nom désigne le nom du cookie et valeur décrit le contenu du cookie. Pour le setcookie () fonction, seul le Nom est requis. Tous les autres paramètres sont facultatifs. 

Exemple de cookie

Pour définir un cookie nommé "UserVisit" dans le navigateur du visiteur qui définit la valeur à la date actuelle et définit en outre l'expiration sur 30 jours (2592000 = 60 secondes * 60 minutes * 24 heures * 30 jours), utilisez ce qui suit Code PHP:

$ Mois = 2592000 + heure ();
// cela ajoute 30 jours à l'heure actuelle
setcookie (UserVisit, date ("F jS - g: i a"), $ Month);
?>

Les cookies doivent être envoyés avant que du code HTML ne soit envoyé sur la page, sinon ils ne fonctionnent pas. setcookie () doit apparaître avant la étiquette.

Comment récupérer un cookie en utilisant PHP

Pour récupérer un cookie de l'ordinateur de l'utilisateur lors de la prochaine visite, appelez-le avec le code suivant:

if (isset ($ _ COOKIE ['UserVisit']))

$ last = $ _COOKIE ['UserVisit'];
echo "Bienvenue à nouveau!
Votre dernière visite: ". $ Last;

autre

echo "Bienvenue sur notre site!";

?>

Ce code vérifie d'abord si le cookie existe. Si c'est le cas, il souhaite la bienvenue à l'utilisateur et annonce la dernière visite de l'utilisateur. Si l'utilisateur est nouveau, il imprime un message de bienvenue générique.

POINTE: Si vous appelez un cookie sur la même page que vous prévoyez d'en créer un, récupérez-le avant de l'écraser.

Comment détruire un cookie

Pour détruire un cookie, utilisez setcookie () à nouveau, mais définissez la date d'expiration dans le passé:

$ past = time () - 10;
// cela fait le temps il y a 10 secondes
setcookie (UserVisit, date ("F jS - g: i a"), $ past);
?>

Paramètres facultatifs

En plus de valeur et expirer, le setcookie () La fonction prend en charge plusieurs autres paramètres facultatifs:

  • Chemin identifie le chemin du serveur du cookie. Si vous le définissez sur "/", le cookie sera disponible pour l'ensemble du domaine. Par défaut, le cookie fonctionne dans le répertoire dans lequel il est défini, mais vous pouvez le forcer à fonctionner dans d'autres répertoires en les spécifiant avec ce paramètre. Cette fonction se met en cascade, donc tous les sous-répertoires d'un répertoire spécifié auront également accès au cookie.
  • Domaine   identifie le domaine spécifique dans lequel le cookie fonctionne. Pour que le cookie fonctionne sur tous les sous-domaines, spécifiez explicitement le domaine de premier niveau (par exemple, "sample.com"). Si vous définissez le domaine sur "www.sample.com", le cookie est uniquement disponible dans le sous-domaine www.
  • Sécurise spécifie si le cookie doit transmettre via une connexion sécurisée. Si cette valeur est définie sur TRUE, le cookie ne sera défini que pour les connexions HTTPS. La valeur par défaut est FALSE.
  • Httponly , lorsqu'il est défini sur TRUE, il ne permet d'accéder au cookie que par le protocole HTTP. Par défaut, la valeur est FALSE. L'avantage de définir le cookie sur VRAI est que les langages de script ne peuvent pas accéder au cookie.