我正在尝试从我的网站中删除名为login
的Cookie,以便将某人从系统中删除。但是,相同/类似cookie的多个“实例”似乎仍然存在,我无法通过PHP访问。
这是我当前的代码,有很多测试转储来查看正在发生的事情:
<?php
echo '<pre>';
var_dump($_SERVER['HTTP_COOKIE']);
echo '</pre>';
if (isset($_SERVER['HTTP_COOKIE']))
{
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach ($cookies as $cookie)
{
$parts = explode('=', $cookie);
$name = trim($parts[0]);
setcookie($name, '', time() - 3600);
setcookie($name, '', time() - 3600, '/');
}
}
echo '<pre>';
var_dump($_SERVER['HTTP_COOKIE']);
echo '</pre>';
// header('Location: index.php4');
exit();
但是,$_SERVER['HTTP_COOKIE']
在第二个转储中包含完全与第一个转储中相同的信息。我正在利用php.net documentation尝试删除这些Cookie。
使用谷歌浏览器我可以检查cookie,我可以看到三个相同/类似cookie的实例:
Name: login
Content: deleted
Domain: www.example.com
Path: /login
Name: login
Content: deleted
Domain: www.example.com
Path: /
Name: login
Content: id|random_hash|other_stuff
Domain: .example.com
Path: /
为什么我可以从www.example.com
删除Cookie,而不是从.example.com
删除?如果我从www.example.com
或example.com
访问退出脚本似乎无关紧要,我无法访问.example.com
的Cookie。