2 votes

Pourquoi le cookie expire-t-il ?

Sur mon site web, j'installe des cookies lorsque les utilisateurs se connectent afin de me souvenir d'eux, de sorte qu'ils n'aient pas à se connecter à chaque fois qu'ils visitent à nouveau le site web.

J'ai défini les cookies en php en utilisant le code suivant :

setcookie("last_login", $loginID, time() + (86400 * 30), "/"); // 86400 = 1 day

Et dans mon php.ini, j'ai même obtenu ce paramètre :

session.cookie_lifetime = 2592000

Mais malgré tout cela, lorsque je ferme le navigateur et que je rouvre le site web, les cookies ne fonctionnent pas dans mon code php et ils ne se connectent pas, ce qui est encore plus bizarre. Ensuite, lorsque j'essaie d'afficher le cookie à l'aide de la fonction echo :

echo $_COOKIE["last_login"];

Au début, il n'apparaît pas, mais parfois, après quelques rechargements, il commence à travailler avec le cookie de manière aléatoire, puis il le répercute et vous vous connectez... ?

Comment faire pour que les cookies fonctionnent toujours dans les 30 prochains jours sans que ce soit bizarre ?

3voto

Bob Kruithof Points 1030

Parfois, les navigateurs effacent les cookies lorsqu'ils sont fermés. Vous pouvez vérifier quelques points pour vous en assurer :

  • Cela se produit-il dans un seul navigateur ou dans tous les navigateurs sur lesquels vous pouvez mettre la main ?
  • L'heure de votre système est-elle correcte ?
  • Fait setcookie retour TRUE ? Vérifiez-le : var_dump(setcookie("last_login", $loginID, time() + (86400 * 30), "/"));
  • Le fichier php.ini est-il correctement chargé ? Vérifier phpinfo() pour voir si les paramètres que vous avez modifiés sont visibles ou non.

Editer :

Réponse à la question de suivi concernant le domaine (voir commentaire) : Oui, c'est possible.

setcookie("last_login", $loginID, time() + (86400 * 30), "/", "domain.com");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X