今天做退出登录功能时遇到了一个神奇的现象,怎么改都没有办法清除用户的user_key这一Cookie,我一开始是这样写的:
退出: setcookie('user_key', "",time() - 3600, "/");登录: setcookie('user_key', $value ,time() + 3600, "/", "jiaohui.fun");
看出什么问题来了吗?显然,这两行代码的给的参数不一样,一个多了一个网址: jiaohui.fun 一个退出反而没有,这就是导致登录可以但退出登录反而不行的主要原因了,也就是说,我们需要让登录的setcookie和退出登录时的setcookie所给的参数相同,像这样:
登录: setcookie("新的cookie", "", time() + 此处为秒, "cookie生效地址,通常为/", "你的网址");退出: setcookie("新的cookie", "", time() - 3600, "cookie生效地址,通常为/", "你的网址");
这样就成功清除了用户下指定名称的cookie了,当然,为了使退出登录功能更规范,让我们添加一点点小东西:
$user_key = $_COOKIE["user_key"];if (empty($user_key)) { die("你没登录你退个damn啊");} else { setcookie("user_key", "", time() - 3600 ,"/", "jiaohui.fun"); echo "ok";}
如何,是不是非常的完美了呢?
看看五星评论家们怎么说的吧: