无论我是否登录,此代码都返回true
if (!isset($_SESSION['LoggedIn']) && $_SESSION['LoggedIn'] != 1) {
do_something();
}
我想检查是否有任何用户(会话)登录
首先,您必须定义登录的含义。例:
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
希望很清楚,这只是一个示意性的解决方案。
我假设$ _SESSION ['LoggedIn']是一个布尔值。
所以,你不应该在这个中使用AND,而是OR。像这样的东西:
if (
!isset($_SESSION['LoggedIn'])
||
(int)$_SESSION['LoggedIn'] != 1
) {
//not logged in
} else {
//logged in
}