我使用此代码设置cookie,然后看看他们是否存在
setcookie("token", "value", time()+60*60*24*100, "/");
setcookie("secret", "value", time()+60*60*24*100, "/");
setcookie("key", "value", time()+60*60*24*100, "/");
if (!isset($_COOKIE['token']) || !isset($_COOKIE['secret']) || !isset($_COOKIE['key'])) {
// do something because one of the cookies were not set
}
虽然饼干的所有三个在我的浏览器设定,它仍然运行if()
声明。通过消除过程,我发现中间cookie !isset($_COOKIE['secret'])
似乎会导致if()
语句运行,即使在我的浏览器中设置了Cookie secret
。脚本说,当我看着我的浏览器并且它已被设置时,它没有被设置。你能想出任何理由为什么PHP说它没有设置?
你的代码适合我。该块在第一次访问时被执行,因为$ _COOKIE没有被setCookie中的值填充。在进一步调用时,该块不再执行。你有没有机会安装cookie拦截器? – Basti 2012-02-23 14:53:49
你用什么工具来判断这个cookie是否存在?萤火虫?看起来很奇怪...... – 2012-02-23 14:54:54