php如何检测会话ID是否存活或已失效?

16 浏览
0 Comments

php如何检测会话ID是否存活或已失效?

这个问题已经有了答案:

可能是重复问题:

如何在30分钟后过期PHP会话?

如何检测会话ID是死亡还是存活的?

假设有人登录-创建了一个新的会话,并保存了会话ID。如果他从另一个浏览器登录,我可以确定他登录了两次。但如何检测他是否退出?

admin 更改状态以发布 2023年5月21日
0
0 Comments

用户登录时,您应该设置一个会话变量来表示他们已登录。

如果用户注销,您应该使用 session_destroy() 来结束会话。

这样变量就会被销毁,因此如果您检查会话变量,它将不会是真的。我个人使用 $_SESSION['isLoggedIn'] = TRUE

编辑以添加:如果您希望在多个浏览器或计算机上使用此功能,则需要将登录或会话 ID 保存到数据库中,以便您可以检查用户是否在其他地方登录。

0
0 Comments

你需要做的是,当他在新浏览器中登录到他的帐户时,找到与其帐户相关联的旧sessionID并使其过期。当他点击注销按钮,你就可以注销该sessionID。

编辑:

抱歉,我误解了你的问题。你想做的是设置一个session超时,如果超时,你就假设session已经失效并将其过期。在每个页面请求中,你都会更新过期时间,以确保它是活动的。如果他们从其他浏览器登录,你可以假设旧浏览器中的session已经过期,并立即将其过期或让它在超时时过期。

你可以在页面加载时检查session超时,或运行一个cron脚本,遍历session数据库并过期所有旧的session。

0