1

我只是想设置和使用一个cookie,但我似乎无法存储任何东西。

登录时,我使用:

setcookie("username", $user);

但是,当我使用 Firefox 和 Web Developer 插件 Cookies -> 查看 Cookie 信息时,没有用户名 cookie。

此外,当我尝试使用从后续页面访问值时

$_COOKIE["username"]

它返回空/空

var_dump(setcookie("username", $user)); 结果:bool(true)

var_dump($_COOKIE) 结果:特定 cookie 不存在(其他 cookie 存在)

我又做了一些测试...

cookie 在登录(第一页)后存在,但当我转到另一个(第二页)时消失并且永远丢失了......

是否有任何标题必须存在或不存在?

4

5 回答 5

1

http://php.net/manual/en/function.setcookie.php

尝试将 $expire 参数设置为将来的某个时间点。我相信它默认为 0,这是遥远的过去。

于 2010-07-30T02:38:53.397 回答
1

确保正确设置域参数,以防登录后转到另一个页面后 URL 发生变化。您可以在http://php.net/manual/en/function.setcookie.php上阅读有关域参数的更多信息

于 2010-07-30T04:21:32.497 回答
0

cookie 可能已过期,因为$expire自 Unix 纪元以来默认为 0 秒。(文档

尝试

setcookie("username", $user, time() + 1200);

设置后 20 分钟到期(基于客户的时间)。

于 2010-07-30T02:43:18.400 回答
0

在 setcookie(..) 上使用 var_dump() 来查看返回的内容。也可以对 $_COOKIE 执行相同的操作以查看是否设置了密钥。

于 2010-07-30T02:50:00.247 回答
0

感谢大家的反馈... Aditya 带领我进一步分析cookie,我发现路径是问题...

登录路径是 /admin/ 然后我重定向回根目录...

感谢大家的帮助和反馈!

于 2010-07-30T06:25:34.897 回答