为什么我不能在 Firefox 中创建 cookie?
我无法使用以下行创建 Firefox cookie:
I am not able to create a Firefox cookie with following line:
setcookie("TestCookie", $value, time()+3600, "/", "localhost");
有人知道为什么吗?
我已经检查了 FF 中的设置,它接受来自第 3 方的 cookie,并在它们到期时被删除.
I have checked the settings in FF and it accepts cookies from 3rd parties and are deleted when they expire.
我现在可以用这一行创建:
I can create now with this line:
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
setcookie('cookiename', 'data', time()+60*60*24*365, '/', $domain, false);
但是我如何删除它?
我尝试将 + 切换为 - 但没有用.
I tried with just switching the + to - but it didn't work.
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;
setcookie('cookiename', 'data', time()-60*60*24*365, '/', $domain, false);
推荐答案
我已经有一段时间没有使用 localhost cookie 了,但是根据 PHP 手册中的注释,'localhost' 是域参数的无效值.
It's been awhile since I worked with localhost cookies, but according to the comments in the PHP manual, 'localhost' is an invalid value for the domain parameter.
要在本地主机上设置 cookie,请改用 false
.示例:
To set a cookie on localhost, use false
instead. Example:
setcookie("TestCookie", $value, time()+3600, "/", false);
参见http://www.php.net/manual/en/function.setcookie.php#73107
相关文章