Cookie没有在PHP中重置

时间:2011-10-07 21:58:03

标签: php cookies

我是饼干的新手。我创建了一个用户登录php类,它使用cookie来存储唯一的MD5密钥以记住已登录的用户。但是,当用户注销时,cookie不会被重置。我从堆栈溢出中找到的代码创建了一个函数来清除注销时的cookie。

static public function clearCookies() 
{
    $past = time() - 3600;
    foreach ( $_COOKIE as $key => $value )
    {
            $value = '';
        setcookie( $key, $value, $past );
        setcookie( $key, $value, $past, '/' );
    }
}

但是,cookie仍未被清除。

这是设置cookie的代码行

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7);

提前致谢

2 个答案:

答案 0 :(得分:1)

尝试添加

static public function clearCookies() 
{
    $past = time() - 3600;
    foreach ( $_COOKIE as $key => $value )
    {
            $value = '';
        setcookie( $key, $value, $past );
        setcookie( $key, $value, $past, '/' );
        unset($_COOKIE[$key]);
    }
}

您必须注意,更改的cookie在发送到客户端后可读(如果您不通过$ _COOKIE手动设置它们),那么下次刷新。

答案 1 :(得分:1)

这是有效的解决方案。

我改变了

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7);

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7, '/');

似乎没有重置cookie,因为重置的网址与设置的网址不同。添加'/'后,可以从新网址重置。