我在根目录中用PHP设置两个cookie
setcookie ("st", "$todays_system_date" ); setcookie ("en", "$tomorrow" );
我的问题是我需要在更深层文件夹中的脚本中再次设置它们,例如:/ diary / 当我设置它们然后尝试阅读它们或查看cookie集时,我发现我有2x en和2x st cookies。
我的问题是我如何才能参考一组饼干?并阅读它们?
提前致谢
答案 0 :(得分:5)
Cookie是键/值对 - 它们在任何给定范围内只会有一个值。
然而:
例如,如果您在根目录(st
)中设置了值为/
的Cookie 1
,并在/diary/
中设置了值2
,这两个cookie本身就存在。当您位于/
目录(或/
的{{1}}的任何子目录或/diary/
的子目录)时,该值将为/diary/
。当您在1
或/diary/
的子目录时/diary/
:
2
例如:
Directory Cookie Value
/ 1
/somedir/ 1
/diary/ 2
/diary/subdir 2
/somedir/diary/ 1
如果查看PHP发送的HTTP响应消息,您将看到密钥setcookie('st',1); // st is now 1 for the current path
setcookie('st',2); // st is now 2 for the current path
的2个Set-Cookie:
标头。但是,在cookie范围内的下一个请求中,只有稍后的值st
将被发送回服务器。
答案 1 :(得分:1)
Cookie可能有点奇怪 - 如果您设置了更多参数,应该工作...尝试:
setcookie('st', "{$todays_system_date}", 0, '/', '.yourdomain.ext');
setcookie('en', "{$tomorrow}", 0, '/', '.yourdomain.ext');
可能是后续的cookie设置了不同的路径或域导致重复。
n.b。如果您使用'.yourdomain.ext'
(请注意域名之前的。),您的网站上的所有子域都可以访问该Cookie,因此www.yourdomain.ext
或badger.yourdomain.ext
等等。
有关详细信息,请参阅:http://uk3.php.net/manual/en/function.setcookie.php