PHP проверить, действительна ли сессия - PullRequest
0 голосов
/ 27 мая 2020

У меня есть приложение PHP, которое использует сеансы для сохранения информации / разрешений пользователей и c, пока этот пользователь перемещается по приложению. Меня попросили настроить систему, чтобы один и тот же пользователь не входил в систему более одного раза. Я не могу использовать файлы cookie.

В процессе аутентификации я отслеживаю, когда пользователь входит в систему et c, и поэтому подумал о захвате значения сеанса пользователей PHP (используя session_id()), сохранить это в базе данных, а затем обнулить это поле, когда пользователь выбирает выход (или автоматически выходит из системы из-за бездействия). С обновленным процессом входа в систему это должно быть возможно.

Мне нравится этот подход, он довольно чистый, но имеет недостаток, заключающийся в том, что идентификатор сеанса не обнуляется, если пользователь закрывает свой браузер без полного выхода из системы. Итак, я подумал: если в идентификаторе сеанса есть значение, почему бы не проверить, считает ли PHP его действительным?

Теперь из памяти мне кажется, что вспомните функцию PHP, которая сообщит мне, действителен ли еще конкретный сеанс или нет. Я думал, что это session_id(), но я не думаю, что это так, поскольку это возвращает или устанавливает текущий сеанс. Насколько я помню, функция проверила бы session.save_path сервера (/ var / lib / php / sessions с использованием Ubuntu и значения по умолчанию PHP .ini), чтобы узнать, действителен ли файл *, и отчиталась бы соответственно ... но я не могу найти эту функцию.

Может ли кто-нибудь помочь мне здесь?

* Я понимаю, что сборка мусора PHP оставляет желать лучшего

1 Ответ

0 голосов
/ 27 мая 2020

Да, есть такая функция, чтобы проверить статус сеанса , активен он, отключен или не существует

session_status()

Эти функции возвращают вам значения как

  • PHP_SESSION_DISABLED, если сеансы отключены.
  • PHP_SESSION_NONE, если сеансы включены, но не существуют.
  • PHP_SESSION_ACTIVE, если сеансы включены, и один существует.

Подробнее об этой функции Щелкните здесь

...