【发布时间】:2012-09-06 19:10:16
【问题描述】:
我正在构建一个基于 cookie 的会话机制,它具有一个抽象类 Session,可以扩展该类以生成多个 cookie 会话实例,以适应不同的用途和复杂性......
我还有一个 Auth 类,它处理权限以及用户的实际登录和注销。 Auth 类需要 Session 类或子类才能运行。
到目前为止,一切都很棒,我可以登录用户,如果经过一定时间、IP 地址不匹配等,也可以将其注销。
每次页面加载都会读取 cookie 检查是否存在不一致,并根据 xyz 销毁或更新它。销毁脚本现在将 cookie 上的时间设置回减号,并删除已从 auth 库中添加的所有用户数据。这很有效,因为我登录后等待了几分钟,然后点击刷新,cookie 变得疲惫不堪,我被弹回登录屏幕。
但是,如果我想通过单击按钮将它们注销,则销毁脚本不起作用,即我可以在顶部回显原始用户数据,然后运行注销脚本,该脚本回显注销并运行所有功能错误等,但如果我得到用户 cookie,它仍然是一样的。我不明白这对于自动检查是如何起作用的,但当用户点击注销按钮时……
下面是我的 sessionDestroy 函数
protected function sessionDestroy($cookieName) {
setcookie(
$cookieName,
addslashes(serialize(array())),
(time() - 3600),
0
);
}
P.S 我知道破坏对于 cookie 来说是个坏词,但你知道我的意思……希望
【问题讨论】:
标签: php codeigniter session cookies