我在一列中添加了代码以更新Mysql,该列跟踪用户是否登录,以防止同时登录多个用户,并跟踪管理面板中当前在任何给定时间登录的用户数量。这似乎不起作用,因为我能够登录多个浏览器标签。(他们似乎都共享同一个会话id。如果我在一个选项卡上注销,那么我将退出所有其他选项卡)
当我添加下面的代码时,如果我单击任何链接,就会被注销。(此代码位于我所有网页中包含的header.php文件中。你知道为什么会发生这种事吗?我怎样才能解决它?是否有其他方法检测会话结束和/或session_destroy?有什么方法可以修复这个系统来防止多个登录,还是有其他方法可以实现这个目标?提前感谢您的反馈。
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()如何执行。以下是代码:
if(session_destroy()) // Destroying All Sessions
{
header("Location: hash.php"); // Redirecting To Home Page
}发布于 2018-05-10 00:48:23
最后,我通过使用"onbeforeunload“并将其链接到我的logout.php脚本来解决这个问题。在logout.php脚本中,我有一个mysli语句,它设置表列loggedin = 0。这样,如果用户忘记注销,而只是关闭选项卡或浏览器,他们将自动注销,mysql表仍将根据其登录状态进行更新。
https://stackoverflow.com/questions/50252057
复制相似问题