无法删除Cookie

时间:2012-01-05 15:35:43

标签: php session cookies methods

我在我的网站上使用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,所以这可能是一个简单的错误:)

3 个答案:

答案 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()