我已经建立了我的登录和退出系统,但它似乎不能正常工作在一些浏览器,如chrome和firefox。问题是,即使cookie在会话结束时过期,浏览器也会记住它们。有人有解决办法吗?
我只是想指出,创建另一个cookie来监控它是否应该记住不是一个有效的解决方案,必须有一个更专业的方法。
提前感谢!
EDIT:对不起,我弄糊涂了。我根本没有取消cookie,浏览器应该在关闭时销毁它,但它没有。这就是问题所在
设置过期日期为过去
// set the expiration date to one hour ago
setcookie ("cookie", "", time() - 3600);
参见php手册中的示例。
编辑:要在浏览器或选项卡关闭时删除cookie,可以使用javascript onunload。
<script>
window.onunload=function()
{
document.cookie = 'cookie =; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
</script>
在页面卸载时将cookie的过期日期设置为过去。
要删除cookie需要设置一个负时间
setcookie('cookie', '', time() - 3600);
就像PHP Doc说的:
如果设置为0,或者省略,cookie将在结束时过期会话(当浏览器关闭时)
这是PHP的想法,但有些浏览器不这样做。只需设置一个负的时间,如
setcookie("cookie", "", time() - 10);