首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测会话_破坏/会话结束,将会话登录限制为1

问检测会话_破坏/会话结束,将会话登录限制为1
EN

Stack Overflow用户
提问于 2018-05-09 11:16:22
回答 1查看 29关注 0票数 0

我在一列中添加了代码以更新Mysql,该列跟踪用户是否登录,以防止同时登录多个用户,并跟踪管理面板中当前在任何给定时间登录的用户数量。这似乎不起作用,因为我能够登录多个浏览器标签。(他们似乎都共享同一个会话id。如果我在一个选项卡上注销,那么我将退出所有其他选项卡)

当我添加下面的代码时,如果我单击任何链接,就会被注销。(此代码位于我所有网页中包含的header.php文件中。你知道为什么会发生这种事吗?我怎样才能解决它?是否有其他方法检测会话结束和/或session_destroy?有什么方法可以修复这个系统来防止多个登录,还是有其他方法可以实现这个目标?提前感谢您的反馈。

代码语言:javascript
复制
if(session_destroy()){

$sql="UPDATE login
SET loggedin = '0'
WHERE username='$member_id' "; 

mysqli_query($conn,$sql);
}

请注意,我在logout.php (我的注销脚本) "if(session_destroy())“中的barrowed代码中注意到,”if(session_destroy())“似乎被用来注销并重定向到能够工作的主页。(但是,我不确定在条件语句中放置时session_destroy()如何执行。以下是代码:

代码语言:javascript
复制
if(session_destroy()) // Destroying All Sessions
{
header("Location: hash.php"); // Redirecting To Home Page
}
EN

回答 1

Stack Overflow用户

发布于 2018-05-10 00:48:23

最后,我通过使用"onbeforeunload“并将其链接到我的logout.php脚本来解决这个问题。在logout.php脚本中,我有一个mysli语句,它设置表列loggedin = 0。这样,如果用户忘记注销,而只是关闭选项卡或浏览器,他们将自动注销,mysql表仍将根据其登录状态进行更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50252057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档