我正在构建一个基于cookie的会话机制,它有一个抽象类Session,可以扩展为多个cookie会话实例,以满足不同的使用和复杂性......
我还有一个Auth类,它处理权限以及实际登录和退出用户。 Auth类需要运行Session Class或子类。
到目前为止,一切都很棒我可以登录用户,如果已经过了一定的时间,ip地址不匹配等,也会将其注销。
每个页面加载都会读取cookie检查是否存在不一致,并根据xyz销毁或更新它。销毁脚本现在将cookie上的时间设置为减去并删除从auth库添加的任何用户数据。这有效,因为我已经登录等了几分钟然后点击刷新,cookie变得疲惫不堪,我被弹回到登录界面。
但是如果我想通过它们单击按钮来记录它们,则销毁脚本不起作用,即我可以回显顶部的原始用户数据运行注销脚本,该脚本回显注销并运行所有功能错误等然后如果我得到用户cookie它仍然是相同的。我无法理解这对于自动检查是如何工作的,但是当用户点击注销按钮时却不能...
下面是我的sessionDestroy函数
protected function sessionDestroy($cookieName) {
setcookie(
$cookieName,
addslashes(serialize(array())),
(time() - 3600),
0
);
}
P.S我知道破坏是一个坏词,但你知道我的意思......希望
答案 0 :(得分:-2)
为什么不使用cookie&会话库内置于CI?
关于会话库的好处,它使用加密的cookie。你发现它比你做的更好。