utilisation des cookies
Créer un cookie
Créez un cookie en PHP via la fonction setcookie(). Le format de syntaxe est le suivant :
bool setcookie(string name[,string value[,int expire[, string path[,string domain[,int secure]]]]])
Lire le cookie
En PHP, vous pouvez lire la valeur du cookie côté navigateur directement via le tableau super global $_COOKIE[].
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>PHP语言基础</title> </head> <body> <?php date_default_timezone_set("PRC"); header("Content-Type:text/html; charset=gb2312"); if (!isset($_COOKIE["visittime"])) { setcookie("visittime", date("y-m-d H:i:s")); echo "这是第一次保存Cookie"."<br>"; } else { setcookie("visittime", date("y-m-d H:i:s"), time() + 60); echo "上次访问时间为:" . $_COOKIE["visittime"]; echo "<br>"; } echo "本次访问时间:" . date("y-m-d H:i:s"); ?> </body> </html>
Résultat de la première exécution :
C'est la première fois que les cookies sont enregistrés
Heure de cette visite : 16-07- 16 08:26:25
Le deuxième résultat en cours :
Heure de la dernière visite : 16-07-16 08:26:25
Cette fois, heure de la visite : 16-07-16 08:27 : 25
Le code ci-dessus détecte d'abord si le fichier Cookie existe via la fonction isset(). S'il n'existe pas, créez un fichier Cookie via la fonction setcookie(). S'il existe, définissez le délai d'expiration du cookie. à 60 secondes.
Supprimer le cookie
Lorsqu'un cookie est créé, si son délai d'expiration n'est pas défini, le fichier cookie sera automatiquement supprimé à la fermeture du navigateur. Si vous souhaitez supprimer le fichier Cookie avant de fermer le navigateur, il existe deux méthodes : l'une consiste à le supprimer à l'aide de la fonction setcookie() et l'autre consiste à supprimer manuellement le Cookie dans le navigateur. Ils sont présentés séparément ci-dessous.
1. Utilisez la fonction setcookie() pour supprimer les cookies
La suppression des cookies est fondamentalement similaire à la création de cookies. La fonction setcookie() est également utilisée pour supprimer les cookies. Pour supprimer les cookies, il vous suffit de définir le deuxième paramètre de la fonction setcookie() sur une valeur nulle et de définir le délai d'expiration du troisième paramètre Cookie pour qu'il soit inférieur à l'heure actuelle du système.
Par exemple, pour définir le délai d'expiration du cookie sur l'heure actuelle moins 1 seconde, le code est le suivant :
setcookie("name", "", time()-1) ;
Dans le code ci-dessus, la fonction time() renvoie l'horodatage actuel exprimé en secondes. Soustraire 1 seconde de l'heure d'expiration obtiendra l'heure passée, supprimant ainsi le cookie.
2. Supprimer manuellement les cookies dans le navigateur
Lors de l'utilisation de cookies, le cookie génère automatiquement un fichier texte et le stocke dans le dossier temporaire Cookies du navigateur IE. La suppression des fichiers cookies dans votre navigateur est une méthode très pratique.
Cycle de vie du cookie
Si le cookie ne fixe pas d'heure, cela signifie que son cycle de vie se déroule pendant la session du navigateur. Tant que vous fermez le navigateur IE, le cookie disparaîtra automatiquement. . Ce type de cookie est appelé cookie de session et n'est généralement pas stocké sur le disque dur mais en mémoire.
Si le délai d'expiration est défini, le navigateur enregistrera le cookie sur le disque dur, et il sera toujours valide lorsque vous ouvrirez à nouveau le navigateur IE jusqu'à l'expiration de sa période de validité.
Bien que les cookies puissent être stockés pendant une longue période dans le navigateur client, ils ne sont pas statiques. Étant donné que le navigateur est autorisé à stocker jusqu'à 300 fichiers cookies et que chaque fichier cookie prend en charge une capacité maximale de 4 Ko ; chaque nom de domaine prend en charge un maximum de 20 cookies. Si la limite est atteinte, le navigateur supprimera automatiquement les cookies de manière aléatoire.
Que dois-je faire si mon navigateur ne prend pas en charge les cookies ?
Si votre application implique des navigateurs qui ne prennent pas en charge les cookies, vous devrez utiliser d'autres méthodes pour transmettre des informations d'une page à une autre dans votre application. Une solution consiste à transmettre des données à partir d'un formulaire (nous avons abordé les formulaires et les entrées utilisateur plus tôt dans ce didacticiel).
Le formulaire suivant soumet les entrées de l'utilisateur à "welcome.php" lorsque l'utilisateur clique sur le bouton d'envoi :
<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
Récupère la valeur dans "welcome.php" comme ceci :
<html> <body> Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old. </body> </html>