重新启动浏览器时不存在会话

时间:2009-03-26 14:02:59

标签: php cookies

我登录系统并以这种方式设置cookie:

setcookie("hello",true,time()+3600);

然后我查看firefox的cookie管理器,看看我的cookie已经设置好了。

当我重新启动浏览器并重新启动时,我会在cookie管理器中看到cookie已经过了,但是这段代码:

if(isset($_COOKIE['hello'])){

            echo "yes"; exit;}

我没有看到任何重定向到登录表单的内容。 有谁知道发生了什么事?

2 个答案:

答案 0 :(得分:3)

虽然常规cookie(如“hello”cookie)将在浏览器重启后继续存在,但会话cookie不会。

听起来您正在使用会话cookie进行登录,因此当您在重新启动后点击该页面时,您需要再次登录。

答案 1 :(得分:3)

有些事情要尝试:

  1. 明确将path的{​​{1}}属性设置为setcookie,以便Cookie可在整个域中使用。
  2. 不要检查isset,而是尝试在其他空PHP文件中执行/ print_r
  3. $_COOKIE的{​​{1}}部分需要字符串,而不是布尔值。我想象现在正好value被设置为setcookie,尽管这对于它是否能够在重启时幸存并不是真的重要,只是认为我会指出它。
  4. 您是否将浏览器设置为在退出时删除Cookie?例如,在Firefox中,您可以转到工具 - >选项 - >隐私,并且有一个选项说“退出Firefox时始终清除我的私人数据”。如果您设置了此设置,您关闭浏览器时将删除任何Cookie。
  5. 您是否已检查过PHP 之前对重启的访问权限?你说你可以在之前和之后在Cookie管理器中看到它,但你能在PHP之前或之后看到它吗?