Как проверить, если кто-то вошел в систему с php? - PullRequest
0 голосов
/ 15 марта 2019

этот код возвращает true независимо от того, вошел я в систему или нет

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

Я хочу проверить, вошел ли в систему какой-либо пользователь (сеанс) или нет

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Сначала вы должны определить, что означает вход в систему.Пример:

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 голосов
/ 15 марта 2019

Я предполагаю, что $ _SESSION ['LoggedIn'] является логическим значением.

Таким образом, вы не должны использовать AND в этом, если, но ИЛИ. Примерно так:

if (
     !isset($_SESSION['LoggedIn'])
     ||
     (int)$_SESSION['LoggedIn'] != 1
) {
     //not logged in
} else {
    //logged in
}
...