我是饼干的新手。我创建了一个用户登录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);
提前致谢
答案 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,因为重置的网址与设置的网址不同。添加'/'后,可以从新网址重置。