注意:未定义索引:调用已设置的cookie时

时间:2012-08-07 07:50:12

标签: php session-cookies

所以我有一个我知道设置正确的cookie(使用firefox获取页面信息)并且我不断收到错误/警告“通知:未定义的索引:”。我使用$_COOKIE['username'];访问Cookie,当我执行if(isset($_COOKIE['username']))代码时,代码无法运行。但是我可以在firefox中看到未过期的cookie获取页面信息。仅供参考,我设置了cookie代码:setcookie('username', $username, time()+3600*24);

2 个答案:

答案 0 :(得分:7)

您可能在php文件中定义了cookie,该文件位于您调用isset的php文件的不同文件夹中。

因此,添加'/'作为cookie的默认文件夹使其可用于整个网站。

有时,您不希望发生这种情况,因为您可能希望拥有两个具有相同名称但值不同的Cookie,具体取决于您所在的文件夹。

示例:一个包含2种语言的网站,您可以在$_COOKIE['language'] = 'en';文件夹中拥有/en/,并在$_COOKIE['language'] = 'fr';文件夹中拥有/fr/

因此,当您在未指定目录的情况下设置cookie时,您必须记住它仅适用于同一文件夹或子文件夹中的文件。

答案 1 :(得分:1)

$expire = time()+60*60*24*30;          
setcookie("MyName", "Khan", $expire,'/');