Maison  >  Article  >  développement back-end  >  Que faire si PHP ne parvient pas à définir les cookies

Que faire si PHP ne parvient pas à définir les cookies

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼original
2019-09-28 15:57:083034parcourir

Que faire si PHP ne parvient pas à définir les cookies

Utilisez setcookie pour définir des cookies sur une certaine page, par exemple :

setcookie("id",$id, time()+36002430);

Mais après être revenu à la page d'accueil, j'ai constaté que cela ne prenait pas effet. :alert(document.cookie) Il est vide et $_COOKIE en PHP n'a é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 comme celui-ci, mais après avoir examiné attentivement la description du paramètre, j'ai découvert le problème.

Recommandations associées : "Tutoriel d'introduction à php"

Le quatrième paramètre de setcookie est le chemin :

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 si le quatrième paramètre S'il est vide, cela ne prendra effet par défaut que dans le répertoire courant. Dans des circonstances normales, il n'y a pas de problème.

Mais mon site est configuré en réécriture et index.php est masqué, le cookie défini n'est donc valable que sur cette page.

La solution est d'ajouter un 4ème paramètre :

setcookie("id",$id, time()+36002430 ,'/');

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn