обнаружение session_destroy / end of session, ограничить количество сеансов до 1 - PullRequest
0 голосов
/ 09 мая 2018

Я добавил код для обновления Mysql в столбце, который отслеживает, вошел ли пользователь в систему или нет, чтобы предотвратить несколько входов в систему одновременно и отслеживать, сколько пользователей в настоящее время вошли в систему в любой момент времени из панели администратора. Это не сработало, так как я могу войти на несколько вкладок браузера. (Кажется, что все они имеют один и тот же идентификатор сеанса. Если я выйду из системы на одной вкладке, то выйду из системы на всех других вкладках)

Когда я добавляю код ниже, я выхожу из системы , если я нажимаю любую ссылку . (Этот код находится в файле 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 ())", кажется, используется для выхода из системы и перенаправления на домашнюю страницу, которая работает. (однако я не уверен, как session_destroy () может выполняться, когда помещается внутри условного оператора. Вот код:

if(session_destroy()) // Destroying All Sessions
{
header("Location: hash.php"); // Redirecting To Home Page
}

1 Ответ

0 голосов
/ 10 мая 2018

В итоге я решил эту проблему с помощью «onbeforeunload» и связал его со своим сценарием logout.php с помощью ajax. В скрипте logout.php у меня есть оператор mysli, который устанавливает столбец таблицы loggedin = 0. Таким образом, если пользователь забудет выйти из системы и просто закроет вкладку или браузер, он автоматически выйдет из системы, а таблица mysql все равно будет обновлена ​​как чтобы они вошли в статус.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...