如何检查是否有人使用PHP登录?

问题描述 投票:0回答:2

无论我是否登录,此代码都返回true

if (!isset($_SESSION['LoggedIn']) && $_SESSION['LoggedIn'] != 1) {
    do_something();   
}

我想检查是否有任何用户(会话)登录

php session cookies login session-cookies
2个回答
1
投票

首先,您必须定义登录的含义。例:

LOGGED_IN = NOT_LOGGED_OUT && LAST_VISIT > time() - 15*60 # 15 minutes

然后,您必须将上次访问时间存储到每个用户活动的数据库表中:

UPDATE user_table SET last_visit = UNIX_TIMESTAMP() WHERE user_id=?

现在您可以检索logged_in用户的数量:

SELECT COUNT(*) from user_table 
WHERE !logged_out && last_visit > UNIX_TIMESTAMP() - 15*60

希望很清楚,这只是一个示意性的解决方案。


0
投票

我假设$ _SESSION ['LoggedIn']是一个布尔值。

所以,你不应该在这个中使用AND,而是OR。像这样的东西:

if (
     !isset($_SESSION['LoggedIn'])
     ||
     (int)$_SESSION['LoggedIn'] != 1
) {
     //not logged in
} else {
    //logged in
}
© www.soinside.com 2019 - 2024. All rights reserved.