Le cookie php échoue car lorsque le 4ème paramètre de setcookie est vide, il ne prendra effet que dans le répertoire courant par défaut. La solution est d'ajouter le 4ème paramètre avec l'instruction "setcookie("id",$. id , heure()+36002430 ,'/');".
Les raisons et les solutions des paramètres de cookies PHP non valides
Utilisez setcookie pour définir des cookies sur une certaine page, Pour exemple,
setcookie("id",$id, time()+36002430);
, mais après être revenu à la page d'accueil, j'ai constaté que cela ne prenait pas effet. Lors de l'utilisation de javascript:alert(document.cookie), il était vide et $_COOKIE en PHP n'avait également aucune donnée. .
Allez sur le site officiel de PHP pour vérifier les instructions de setcookie. L'exemple sur le site officiel est également le même, mais après avoir regardé attentivement la description du paramètre, j'ai découvert le problème.
Le quatrième paramètre de setcookie est path
The path on the server in which the cookie will be available on. If set to ‘/’, the cookie will be available within the entire domain. If set to ‘/foo/’, the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
C'est-à-dire que si le quatrième paramètre est vide, il ne prendra effet que dans le répertoire courant par défaut, dans des circonstances normales. aucun problème.
Mais mon site est configuré avec réécriture et index.php est masqué, donc le cookie défini n'est valide que sur cette page.
La solution est d'ajouter le quatrième paramètre
setcookie("id",$id, time()+36002430 ,'/');
Pour plus de connaissances connexes, veuillez visiter le Site Web PHP chinois !
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!