1

我已经建立了我的登录和注销系统,但它似乎在某些浏览器(如 chrome 和 firefox)中无法正常工作。问题是浏览器会记住 cookie,即使它们在会话结束时会过期。有没有人有解决方案?

我只想指出,创建另一个 cookie 来监控它是否应该记住不是一个有效的解决方案,必须有更专业的方法。

先感谢您!

编辑:我很抱歉我感到困惑。我根本没有取消设置cookie,浏览器应该在关闭时销毁它,但它没有。那就是问题所在

4

3 回答 3

2

将到期日期设置为过去

// 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 过期日期设置为过去。

于 2013-05-29T14:30:25.897 回答
1

要删除 cookie,您需要设置一个负数时间。

setcookie('cookie', '', time() - 3600);
于 2013-05-29T14:30:10.243 回答
1

就像PHP Doc说的:

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

这是 PHP 的想法,但有些浏览器不这样做。只需设置一个负时间

setcookie("cookie", "", time() - 10);

它有效。

于 2013-05-29T14:34:47.407 回答