检查cookie时出现意外行为

时间:2013-07-02 15:39:16

标签: php

我的登录验证脚本 -

if($pass == $hash) setcookie("cookiename",$cookieVal);

这会将cookie存储在broswer中。没问题;我自己检查了一下。

然而,在我检查cookie是否存在的不同页面中,它返回false。

if(isSet($_COOKIE['cookiename'])) echo "Cookie is set"; else echo "Not set";

以上代码在broswer窗口中打印“Not set”。

此外,如果我尝试echo $_COOKIE['cookiename'];,则输出错误注意:未定义索引:cookiename

显然,浏览器(Firefox)无法识别cookie,但是当我查看broswer的选项选项卡时,我可以看到它!后来,我也试过Chrome和IE--同样的问题。

我做错了什么?

更新:当我将if(isSet($_COOKIE['cookiename'])) echo "Set";添加到登录验证脚本的末尾时,检测到我的cookie(打印了“Set”)!但它没有被任何其他页面检测到。

1 个答案:

答案 0 :(得分:1)

默认情况下,Cookie仅在指定路径时可用。您应该会在Firebug / Chrome中看到Path列,其中会显示一条路径。要在整个域(不包括子域)上访问Cookie,请使用setcookie("cookiename", $cookieVal, strtotime('+1 year), '/');