【发布时间】:2009-03-09 19:41:30
【问题描述】:
我正在尝试编写 PHP 代码来删除我域中的所有用户 cookie。
这是我得到的:
<?php
$domain = 'www.example.com';
$deleteExpiration = time() - 60*60*24*365*10; // 10 years ago
foreach (array_keys($_COOKIE) as $cookie) {
setcookie($cookie, 0, $deleteExpiration, '/', $domain);
}
在http://www.example.com/delete_cookies.php 上运行此代码会删除在服务器上设置的所有 cookie,但不会删除在 JavaScript 中设置的 cookie。
我使用 Firefox Cookies 对话框验证了有问题的 cookie 确实来自 (path=/; domain=www.example.com)。使用 Live HTTP 标头,我可以看到发送了以下标头:
Set-Cookie: CookieName=0; expires=Fri, 12-Mar-1999 19:36:15 GMT; path=/; domain=www.example.com
所以我相信 setcookie 命令按预期工作。 Firefox 只是不响应请求。
我注意到的另一件事是,如果我在服务器上设置了一个带有 domain=www.example.com 的 cookie,那么它会在带有 domain=".www.example.com" 的 Firefox cookie 对话框中列出,但如果我使用 JavaScript 代码设置以下 cookie,那么不添加前导点。
我做错了什么?如何删除这些 cookie?
【问题讨论】:
-
您可能会发现
$cookie->delete()很有帮助,如在 this standalone library 中找到的那样。
标签: javascript php firefox cookies