@Anthony228357

Как узнать когда пользователь покинул мой сайт на php?

Я создаю сайт, используя php, и я хочу показывать информацию о том, когда каждый пользователь был онлайн на моем сайте.Легко сказать, когда пользователь открыл любую страницу моего сайта, но можно ли узнать, когда пользователь закрыл мой сайт, например, он зашёл на статью моего сайта в 2.30 и читал ее в течение 5 минут и закрыл мой сайт. Поэтому время последнего раза в сети должно быть 2,35, а не 2,30. Можно ли добавить событие ,происходящее по истечении сессии или или событие при закрытии страницы? Или есть другое решение этой проблемы?
  • Вопрос задан
  • 1085 просмотров
Решения вопроса 3
@VisualIdeas
Ну как вариант мааааленький скриптик на JavaScript

let timerId = setInterval(function(){
    let request = new XMLHttpRequest();
    request.open('GET', 'https://mysite.com/i-am-online.php', true);
    request.send();
}
,60000); //количество миллисекунд через которое отправлять запрос, допустим раз в минуту


ну а тут https://mysite.com/i-am-online.php сохраняем время последнего посещения
Ответ написан
Комментировать
kocherman
@kocherman
На JS можно обработать эти события. Можно отправить запрос на сервер (XHR, fetch), чтобы сообщить о событиях PHP.
window.addEventListener("load", e=> { /* страница полностью загрузилась во вкладку */ });
   window.addEventListener("unload", e=> { /* пользователь закрыл вкладку */ 
     /* (или пытается закрыть вкладку, так как это действие можно отменить)*/ });
   window.addEventListener("focus", e=> { /* пользователь переключился на нашу вкладку */ });
   window.addEventListener("blur", e=> { /* пользователь переключился на другую вкладку */ });
   window.addEventListener("error", e=> { /* у пользователя произошла ошибка */ });
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега PHP
♬♬
На PHP — установить Swoole, при визите на страницу устанавливать WebSocket соединение.
Когда страницу закроют сработает событие отключения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
1. на РНР - точно нельзя.
2. Если страница открыта, то это совсем не значит, что пользователь её читает. Он может быть в другой программе или вообще на кухне
3. Идея заведомо дурацкая и не стоит ни одной минуты времени, затраченной на неё.
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Только на фронте, на php нет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы