关闭浏览器时Cookie不会过期

时间:2012-04-04 09:33:32

标签: php cookies

我正在尝试使用以下内容设置Cookie:

setcookie($cookie_name, $val, 0);

或者

setcookie($cookie_name, $val);

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

谢谢

6 个答案:

答案 0 :(得分:2)

要删除Cookie,只需将过期日期设置为过去,如下所示:

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

但是,我不认为这是你的问题,因为你的代码似乎是正确的。

您是如何测试Cookie的?您可能在测试之前再次设置它!

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

答案 1 :(得分:1)

尝试将值设置为空

setcookie($cookie_name, null);

答案 2 :(得分:1)

你应该试试

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

答案 3 :(得分:0)

尝试使用此代码:

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

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