У меня есть таблица MYSQL с пользователями. Пользователь может войти в систему, используя php-код. Его имя хранится в переменной SESSION. Как я могу проверить, зарегистрирован ли пользователь уже на другом компьютере, чтобы запретить ему вход в систему снова?
Сценарий:
Компьютер 1:
USER1 зарегистрирован в
Компьютер 2:
USER1 пытается снова войти в ногу, но он не может, потому что он уже вошел в систему на другом компьютере.
Попытайтесь создать столбец «isLogged» в банке данных и установите для него значение true o false, когда пользователь запускает или завершает сеанс. Я делал это и прекрасно работал.
Чтобы убедиться, что он не вступил в систему снова на другом компьютере, вы можете обновить поле по базе данных, чтобы отметить его как входящего в систему, а затем проверить это поле, когда пользователь пытается войти в систему.
<?php if ($_SESSION["MySession"] != "") { //Update database field to set this user as actively browsing. //Also set a timestamp so you know when he last visited a page. } ?>
Тем не менее, пользователю придется физически выйти на другой компьютер, чтобы снова войти в систему на новом. Вы можете реализовать таймер, чтобы очистить поле в базе данных, чтобы он мог войти в систему через определенное время бездействия.
Вы можете создать cron и запустить его каждые 5 минут. Или вы могли бы снова запустить код вверху страницы, который устанавливает все поля user_logged_in
в false, если они не были активны в течение прошлых x
минут.
Поэтому, чтобы:
$_SESSION["UserName"]
имеет имя пользователя.