为什么cookie过期?

时间:2017-05-10 19:29:10

标签: php cookies

在我的网站上,我在用户登录时设置了一些cookie,这样我就能记住它们,这样每次重新访问网站时都不必登录。

我使用以下代码在php中设置了cookie:

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

在我的php.ini中,我甚至得到了这个设置:

session.cookie_lifetime = 2592000

但即便如此,当我关闭浏览器并重新打开网站时,cookie也无法在我的PHP代码中运行,并且它们无法登录,但更加奇怪。然后当我尝试使用以下方式回复cookie时

echo $_COOKIE["last_login"];

它在开始时没有显示但有时在几次重新加载之后它只是随机开始使用cookie并且它回显它并且你登录了吗?

那么我怎样才能让饼干在接下来的30天内全部运作而不会让它变得奇怪?

1 个答案:

答案 0 :(得分:3)

有时浏览器会在关闭Cookie时清除Cookie。您可以检查一些事情,以确保:

  • 这只是在一个浏览器或所有浏览器中发生的吗?
  • 您的系统上的时间是否正确?
  • setcookie会返回TRUE吗?检查一下:var_dump(setcookie("last_login", $loginID, time() + (86400 * 30), "/"));
  • 是否加载了正确的php.ini?检查phpinfo()以查看您更改的设置是否可见。

编辑:

回复有关域名的跟进问题(见评论):是的,你可以。

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