我的登录验证脚本 -
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”)!但它没有被任何其他页面检测到。
答案 0 :(得分:1)
默认情况下,Cookie仅在指定路径时可用。您应该会在Firebug / Chrome中看到Path
列,其中会显示一条路径。要在整个域(不包括子域)上访问Cookie,请使用setcookie("cookiename", $cookieVal, strtotime('+1 year), '/');