[英]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.