我在我的网站上使用cookies作为记住我的功能。我的方法创建了一些像魅力一样的cookie,但是,之后我无法删除或更改这些值。
我通过以下方式创建它们:
private function setCookies($userInfo) {
setcookie("profileID",$userInfo["profileID"],time()+60*60*24*30);
setcookie("userLevel",$userInfo["levelID"],time()+60*60*24*30);
setcookie("username",$userInfo["username"],time()+60*60*24*30);
setcookie("fullname",$userInfo["fullname"],time()+60*60*24*30);
return true;
}
和我的退出方法:
public function logout() {
session_destroy();
setcookie("profileID","",time()-60*60*24*30*12);
setcookie("userLevel","",time()-60*60*24*30*12);
setcookie("username","",time()-60*60*24*30*12);
setcookie("fullname","",time()-60*60*24*30*12);
return true;
}
这些方法都在控制器文件中调用,然后输出到浏览器(head ect)。更糟糕的是,它甚至没有将上面列出的值更改为“”,而是保留原始值。
有什么想法吗?我没有那么多的cookie,所以这可能是一个简单的错误:)
答案 0 :(得分:1)
请阅读php手册,了解如何使用session_destroy。它讨论了cookie以及如何销毁它们。
http://php.net/manual/en/function.session-destroy.php
为了再次使用相同的cookie,您需要在执行此操作之前调用session_start()。您正在调用session_destroy(),然后尝试设置Cookie。
答案 1 :(得分:0)
更新到负时间或0时间的Cookie只有在浏览器重新启动时才会被删除,如果我没有弄错的话。 Cookie过期通过浏览器关闭时运行的浏览器清理方法进行管理。
答案 2 :(得分:0)
在注销方法
中的session_unset()
之前使用session_destroy()