Проверьте, не отключен ли пользователь, и обновите поле в базе данных. - PullRequest
0 голосов
/ 22 июня 2019

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

Сначала я подумал, может ли пользователь закрыть браузер, но я не уверен в этом.

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

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 22 июня 2019

Позвольте мне ответить на ваш вопрос с учетом некоторых вариантов использования.Посмотрите, что пользователь находится в автономном режиме. Означает->

  • 1. Любой пользователь нажимает на Выход.
  • 2. Или пользователь закрывает вкладку или браузер.
  • 3. Срок действия сеанса истекает(если активен долгое время и ничего не делает).

Это возможные случаи.Лучшее решение, которое я могу предложить, - это сделать еще одно поле в вашей базе данных с именем last_activity, в которое может быть включено то, что пользователь делал в прошлый раз, сохранить его со временем. Обновляйте свою базу данных, проверяя это поле каждый конкретный раз, т.е. вызывайте функцию через определенный промежуток времени.и обновите свою базу данных соответствующим образом.

$mysqli->prepare('UPDATE User SET last_action=NOW() WHERE username=?');

Как только вы это сделаете, вы можете перечислить всех пользователей, имеющих last_action > NOW() - [some_duration], в зависимости от того, что означает "онлайн" на вашем сервере.(как правило, last_action > NOW() - one hour). Вы можете отслеживать все, что вы хотите с их статусом офлайн.

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