Maison > Article > développement back-end > Que dois-je faire si je ne parviens pas à supprimer les cookies php ?
La solution au problème selon lequel les cookies PHP ne peuvent pas être supprimés : créez d'abord un exemple de fichier PHP ; puis créez un cookie via setcookie et enfin, définissez la période de validité de ce cookie sur une heure antérieure à l'heure actuelle à effacer ; le cookie créé.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
PHP ne parvient pas à supprimer le COOKIE ? Définir la période de validité des COOKIES
PHP prend en charge de manière transparente les cookies HTTP, qui sont un mécanisme qui stocke les données du côté du navigateur distant pour suivre et identifier les utilisateurs. Les cookies peuvent être définis à l'aide des fonctions setcookie() ou setrawcookie(). Les cookies font partie de l'en-tête HTTP. La fonction setcookie() doit donc être appelée avant que d'autres informations ne soient envoyées au navigateur, ce qui est similaire aux restrictions sur l'en-tête. () fonction.
setcookie();
La façon de supprimer un cookie est de définir la période de validité du cookie avant l'heure actuelle.
setcookie('test', 'true', time() + 300); // 创建 cookie //setcookie('test',time() - 3600 ); // 清除建立的 cookie //setcookie('test'); //只是将 $_COOKIE['test'] 的值清空 如果直接setcookie('test', ''); echo ''; print_r($_COOKIE); //attay();
constatera que le tableau $_COOKIE est vide, pas seulement $_COOKIE[. 'test'] est vide. , Winsock a donc capturé le paquet et observé l'en-tête http renvoyé. Il s'est avéré être :
set-cookie:test=deleted; expires=Mon, 29-May-2014 10:22:15 GMT
Connexion :
setcookie('username', 'zhangsan', time()+1000, "/php100");
Sortie :
setcookie('username', '', time()-3600);J'ai constaté qu'il n'y avait aucun problème sous IE lors de la sortie. Cependant, lors du test dans Firefox, la connexion est normale et ne peut pas se terminer. Après avoir vérifié la différence entre les enregistrements de cookies dans IE et Firefox, il a été découvert après avoir testé que le quatrième paramètre (. paramètre de chemin légal) de setcookie() n'a pas été spécifié, donc l'erreur s'est produite lors de la connexion et de la sortie. Le chemin de configuration des cookies est différent (Firefox est plus strict, ce qui entraîne la reconstruction de diverses variables) [Apprentissage recommandé : "
Tutoriel vidéo PHP"]
Exemple :$value = 'something'; setcookie('TestCookie', $value, time() + 3600); setcookie('mytest', $value, time() + 3600, "~rasmus", ".maoge.com", 1); if (isset($_COOKIE['TestCookie'])) { echo 'TestCookie :' . $_COOKIE['TestCookie']; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!