我遇到了取消设置Cookie的问题。目前,我无法退出。在验证用户会话时,Cookie本身就像一个魅力。 所以在第一次登录时我会以这种方式设置cookie(成功登录时):
$cookie_username = $username;
$cookie_password = sha1(md5($password));
$cookie_value = 'username='.$cookie_username.'&hash='.$cookie_password;
$cookie_name = 'remember_me@website';
$cookie_time = time() + 31536000;
setcookie($cookie_name, $cookie_value, $cookie_time, '/', '.website.com');
上面的Cookie运行良好,我没有阅读它们的问题。
这是我的退出代码:
setcookie($cookie_name, '', time()-3600, '/', '.website.com');
unset($_COOKIE[$cookie_name]);
unset($_SESSION['username']); \
unset($_SESSION['loggedin']); / were setted after successful login
根据我所读到的内容,这应该可以工作并删除cookie,但是他们不会:(
答案 0 :(得分:2)
您必须确保Cookie的名称,域名,路径甚至安全设置都与您尝试删除的内容完全相同。
如果你创建了这样的cookie:
setcookie('name', 'value', time()+3600);
然后尝试删除它:
setcookie('name', 'value', time()-3600, '/', '.website.com');
那不会奏效。您必须具有与创建cookie时使用的完全相同的参数。
如果您在JavaScript中创建了Cookie,请在那里仔细检查您的设置。
作为测试,请尝试以下所有代码。如果它有效,请逐一注释掉,直到你只剩下那个有效的那个:
setcookie($cookie_name, '', time()-3600);
setcookie($cookie_name, '', time()-3600, '/');
setcookie($cookie_name, '', time()-3600, '/', '.website.com');
setcookie($cookie_name, '', time()-3600, '/', '.website.com', 1);