Cookie PHP
Prenons un petit exemple pour expliquer ce qu'est un cookie
Lorsque les gens avaient des réunions il y a des décennies, ils devaient tous apporter un pass de participation. Cette carte de participation contient le poste, le nom, l'unité, la photo et d'autres informations de la personne. Lors d'une réunion, le personnel de sécurité et les organisateurs de la réunion n'ont qu'à vérifier les informations pertinentes
.
Ce petit exemple illustre principalement le fait que les gens apportent leurs propres cartes de participation et leurs propres informations. Ce modèle est le cookie.
Les cookies sont souvent utilisés pour identifier les utilisateurs. Un cookie est un petit fichier qu'un serveur dépose sur l'ordinateur d'un utilisateur. Chaque fois que le même ordinateur demande une page via le navigateur, le cookie sera envoyé à l'ordinateur. Avec PHP, vous pouvez créer et récupérer des valeurs de cookies.
Comment créer des cookies ? La fonction
setcookie()
est utilisée pour définir des cookies. Remarque : La fonction setcookie() doit être placée avant la balise <html>
Grammaire
setcookie
(nom, valeur, expiration, chemin, domaine)nom requis. Spécifie le nom du cookie. valeur facultative. Spécifie la valeur du cookie.
expirer Facultatif. Spécifie la durée de validité du cookie.
chemin facultatif. Spécifie le chemin du serveur pour les cookies.
domaine facultatif. Spécifie le nom de domaine du cookie.
Pour cette fonction, on l'utilise généralement ainsi : setcookie (nom du cookie, valeur du cookie, durée de validité du cookie), trois suffisent
Exemple
Dans l'exemple suivant, nous allons créer le name Pour le cookie "user", attribuez-lui la valeur "Alex Porter". Nous précisons également que ce cookie expire au bout d'une heure : <?php
setcookie("user","Alex Porter",time()+3600);
?>
Remarque : Lors de l'envoi d'un cookie, la valeur du cookie est automatiquement encodée en URL , automatiquement décodé lors de la récupération (pour empêcher le codage d'URL, utilisez plutôt setrawcookie()).
Vous pouvez également définir le délai d'expiration des cookies d'une autre manière. Cela peut être plus simple que d'utiliser les secondes.
<?php $expire=time()+60*60*24*30; setcookie("user", "php", $expire); ?>Dans l'exemple ci-dessus, le délai d'expiration est fixé à un mois (60 secondes * 60 minutes * 24 heures * 30 jours).
Comment récupérer la valeur du Cookie ?
La variable $_COOKIE de PHP est utilisée pour récupérer la valeur du cookie.
Dans l'exemple suivant, nous récupérons la valeur du cookie nommé "user" et l'affichons sur la page :
<?php // 输出 cookie 值 echo $_COOKIE["user"] ."<br/>"; // 查看所有 cookie print_r($_COOKIE); ?>
Nous avons créé un cookie nommé php au dessus du cookie, donc le programme exécute le résultat est la suivante :
php
Array ( [pgv_pvi] =>9622684672 [utilisateur] => php )
Exemple
Dans l'exemple suivant, nous utilisez la fonction isset() pour confirmer si le cookie a été défini :
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <?php header("Content-type:text/html;charset=utf-8"); if (isset($_COOKIE["user"])) echo "欢迎 " . $_COOKIE["user"] . "!<br>"; else echo "普通访客!<br>"; ?> </body> </html>
Résultat de l'exécution du programme :
Bienvenue sur php !
Comment supprimer les cookies ?
Lors de la suppression d'un cookie, remplacez simplement la date d'expiration par l'heure passée
Exemple
Le cookie nommé « utilisateur » se voit attribuer la valeur « XX utilisateur ». Il est précisé que ce cookie expirera au bout d'une heure :
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 setcookie("user","XX用户",time()+3600); ?>
Si vous souhaitez supprimer le cookie ci-dessus, il suffit de régler l'heure comme suit
<?php setcookie("user","",time()-3600); ?>
Si le navigateur ne prend pas en charge les cookies, que faire ?
Si votre application doit gérer des navigateurs qui ne prennent pas en charge les cookies, vous devrez alors utiliser d'autres méthodes pour transmettre des informations entre les pages de votre application. Une solution consiste à transmettre des données via un formulaire (les formulaires et la saisie utilisateur ont été abordés dans les chapitres précédents de ce didacticiel).
Exemple
Le formulaire suivant soumet l'utilisateur à "cookie_welcome.php" lorsque l'utilisateur clique sur le bouton "Soumettre" Entrée :
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="cookie_welcome.php" method="post"> 名字: <input type="text" name="name"> 年龄: <input type="text" name="age"> <input type="submit"> </form> </body> </html>Récupérez la valeur dans le fichier "cookie_welcome.php", comme indiqué ci-dessous :
<?php header("Content-type:text/html;charset=utf-8"); echo "欢迎".$_POST['name'] ."<br>"; echo "你".$_POST['age'] ."岁了"; ?>Résultat de l'exécution du programme :
Bienvenue liuqi
Vous ont 23 ans