PHP + Выйти из системы по окончании сеанса - PullRequest
0 голосов
/ 11 марта 2012

У меня есть сайт, на котором люди входят в систему и создается СЕССИЯ.

Я заметил, что если вы покидаете сайт достаточно долго (не знаете точных временных рамок), сеанс заканчивается, но участники все еще находятся на сайте. Они по-прежнему могут щелкать и перемещаться, и я считаю, что это привело к тому, что в БД появились некоторые бессмысленные данные, поскольку переменных SESSION, таких как userID, не существует.

Я искал совета по выходу пользователей из системы, когда СЕССИЯ заканчивается. Я смотрел на код, как это - есть идеи получше?

 <?php if(!isset($_SESSION[]) {header(loginpage.php);}?>

Есть ли лучший способ написать код выше?

Где должен быть этот код? Просто в навигационном меню или в любом месте, где пользователь может нажать?

Наконец, есть ли способ понять, когда SESSION естественным образом истекает - есть ли переменная SESSION, которую я могу вывести на экран, чтобы увидеть временной интервал и т. Д.?

спасибо

Ответы [ 2 ]

2 голосов
/ 11 марта 2012

Вам необходимо проверить сеанс, вы уже направились в этом направлении с помощью своего кода, но этого недостаточно:

<?php if(!isset($_SESSION[]) {header(loginpage.php);}?>

Этого недостаточно, поскольку $_SESSION[] существует автоматически после запуска сеанса (механизм сессии в PHP, см. session_start).

Вместо этого, если вы сохранили userID внутри сессии, проверьте его:

isset($_SESSION['userID'])

Если сеанс действительно истек, его не следует устанавливать.

0 голосов
/ 11 марта 2012

Я согласен с приведенным выше ответом.Я бы сказал, что это зависит от того, как ваше приложение разработано, чтобы сказать, к чему это относится.до того, как на экране появятся какие-либо выходные данные, я предполагаю, что вы вызываете session_start, затем немедленно проверьте переменную сеанса, такую ​​как userID, которая устанавливается после входа пользователя в систему. Если он не установлен, перенаправьте установку заголовка для местоположения на страницу входа.Вы также можете написать несколько js, которые проверяют cookie-файл сеанса на значение с заданным интервалом (я думаю, это было давно, так что протестируйте его), затем, когда переменная отсутствует, вы можете перенаправить на страницу входа.Третий способ - сделать так, чтобы код js сделал XHR-вызов php-скрипта, чтобы проверить сеанс для вас.

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