Cookie不会';关闭浏览器时不会过期


Cookie doesn't expire when closing browser

我正试图用设置cookie

setcookie($cookie_name, $val, 0);

setcookie($cookie_name, $val);

但当我关闭并重新打开浏览器(firefox、chrome)时,cookie仍然具有相同的值。访问结束后如何强制删除?

感谢

要删除cookie,只需将到期日期设置为过去即可,如下所示:

// Set the cookie in the past to ensure it is removed
setcookie($cookie_name, $val, time()-3600);

然而,我不认为这是您的情况下的问题,因为您的代码似乎是正确的。

您是如何测试cookie的?在测试之前,您可能正在重新设置它

您还需要确保关闭的是浏览器,而不是选项卡。关闭选项卡不会结束会话!

尝试将值设置为空

setcookie($cookie_name, null);

您应该尝试

setcookie($cookie_name, $val, time()-3600);

尝试使用以下代码:

setcookie ("TestCookie", "", time() - 3600);// set the time to minus to remove the cookie.

我在Chrome上也遇到过类似的问题。打开Web Developer Tools中的cookie面板有时会显示Expires设置为"Session"的cookie。关闭浏览器(不仅仅是选项卡)并重新打开浏览器后,此cookie仍然存在。解决这个问题的一个可靠方法是清除缓存。这似乎奏效了。最重要的是,如果cookie在浏览器工具中显示为"会话",那么您已经正确设置了它。

您可能需要取消设置cookie,然后将其设置为null,如下所示:

unset($_COOKIE['cookie_name']);
setcookie ( 'cookie_name', null,-1 );

在第一行中,您取消设置它,然后将它设置为null,以防出现任何进一步的问题。