2

我正在尝试设置一个cookie:

setcookie($cookie_name, $val, 0);

或者

setcookie($cookie_name, $val);

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

谢谢

4

6 回答 6

2

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

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

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

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

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

于 2012-04-04T09:35:59.563 回答
1

尝试将值设置为 null

setcookie($cookie_name, null);
于 2012-04-04T09:35:44.137 回答
1

你应该试试

setcookie($cookie_name, $val, time()-3600);
于 2012-04-04T09:36:14.883 回答
0

尝试使用此代码:

setcookie ("TestCookie", "", time() - 3600);// set the time to minus to remove the cookie.
于 2012-04-04T09:39:08.070 回答
0

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

于 2013-04-09T09:34:03.530 回答
0

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

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

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

于 2015-09-23T12:17:41.440 回答