从域中删除cookie,加上它的www。和。版本

时间:2017-06-28 11:07:44

标签: php cookies

我正在尝试从我的网站中删除名为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.comexample.com访问退出脚本似乎无关紧要,我无法访问.example.com的Cookie。

0 个答案:

没有答案