繁体   English   中英

每个浏览器关闭后,Cookie到期时间未设置为销毁,但无法正常工作

[英]cookie expiry time not set to destroy after each browser close but it is not working

首先,我要设置一个cookie,当我关闭浏览器时,该cookie应该被销毁了,所以我没有设置任何到期时间。 但是,即使关闭浏览器,cookie也不会被破坏。

<?php
session_start();
if(isset($_COOKIE['favcolor']))
{
   echo $_COOKIE['favcolor'];
}
else
{
   $_SESSION["favcolor"] = "green";
   setcookie('favcolor', 'green',0);
   echo 'new cookie and session are set';
}
?>

首先,您的代码似乎正确无误。 setcookie()的PHP文档中所述:

如果设置为0或省略,则cookie将在会话结束时(浏览器关闭时)过期。

这称为“会话cookie”,应在关闭时由浏览器删除。

仔细研究一下,似乎Chrome和Firefox的行为有所不同,具体取决于它们是否配置为在启动时记住打开的选项卡和窗口,这是设计使然。

您提到您正在使用Chrome-如果Chrome在启动时配置为“从上次退出的地方继续”,则关闭选项卡并重新启动浏览器时,可能不会删除会话Cookie。

在此处输入图片说明

当我选择“打开新标签页”时,关闭浏览器后,我可以验证Cookie是否已删除。

Firefox也是如此-在Mozilla支持论坛上有一些其他信息以及一些有关如何配置它的详细信息。

简而言之,您似乎无法依靠Chrome或Firefox保证删除会话cookie。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM