экономия времени после окончания сеансов php - PullRequest
0 голосов
/ 06 января 2012

Я написал скрипт (php), который использует сеансы так, чтобы он заканчивался после перезапуска браузера, а также написал сценарий для функции выхода из системы (с уничтожением сеанса, а также с удалением cookie из браузера).

А вот и моя проблема:

Когда пользователь добровольно выходит из системы, время сохраняется моим сценарием. Но я не могу контролировать случаи, когда браузер перезагружается или закрывается.

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

Ответы [ 4 ]

4 голосов
/ 06 января 2012

Если нет запроса от браузера, ваша серверная часть (PHP) не заметит.

Однако, если вы обновите отметку времени последней активности в своей базе данных, вы будете знать, когда последняя активностьбыло.Поскольку через некоторое время сеансы будут уничтожены, последнее действие для этого пользователя останется в базе данных до следующего входа в систему.

2 голосов
/ 06 января 2012

Вы можете заставить пользовательскую страницу регистрироваться через ajax с некоторым разумным интервалом для сервера.(5 минут?) А затем каждые 5 минут запускайте задание на сервере, чтобы проверить пользователей, которые так долго не регистрировались.Можно предположить, что их время закрытия окна или потери соединения было между их последней регистрацией и текущим временем, а затем уничтожить сеанс.

1 голос
/ 06 января 2012

Я бы связал событие AJAX с событием выгрузки Javascript.

$(window).unload(function() {
   $.ajax({
       url: 'someLogoutRequest.php'
   });
});
0 голосов
/ 06 января 2012

Сеансы PHP обычно умирают при закрытии браузера (при условии, что вы не путаете файлы cookie и сеансы). Но вы можете добавить дополнительный сеанс, который хранит отметку времени, что угодно после этой отметки времени. Является недействительным и очищает сеанс. Как правило, вы обновляете эту временную метку, когда пользователь перемещается, чтобы она не превышала время ожидания в середине навигации. Хотя я до сих пор не уверен на сто процентов, что ты пытаешься сделать и почему. Таким образом, мой ответ может быть концепцией немой необходимости. У jjs9543 есть не очень плохое предложение, хотя это предложение не сработает, если Javascript отключен в браузере пользователя (что я не могу представить так часто, как несколько лет назад, но тем не менее стоит сказать).

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