无法删除Cookie


Unable to delete cookies

我在网站上使用cookie作为记住我的功能。我的方法创建了许多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,所以这可能是一个简单的错误:)

请阅读php手册,了解如何使用session_delete。它谈到了饼干以及如何销毁它们。

http://php.net/manual/en/function.session-destroy.php

为了再次使用相同的cookie,您需要在这样做之前调用session_start()。您正在调用session_destroy(),然后尝试设置您的cookie。

更新为负时间或0时间的Cookie只有在浏览器重新启动时才会被删除,如果我没有弄错的话。Cookie过期是通过浏览器的清理方法管理的,该方法在浏览器关闭时运行。

在注销方法中的session_destroy()之前使用session_unset()