Как узнать когда пользователь покинул мой сайт на php?
Я создаю сайт, используя php, и я хочу показывать информацию о том, когда каждый пользователь был онлайн на моем сайте.Легко сказать, когда пользователь открыл любую страницу моего сайта, но можно ли узнать, когда пользователь закрыл мой сайт, например, он зашёл на статью моего сайта в 2.30 и читал ее в течение 5 минут и закрыл мой сайт. Поэтому время последнего раза в сети должно быть 2,35, а не 2,30. Можно ли добавить событие ,происходящее по истечении сессии или или событие при закрытии страницы? Или есть другое решение этой проблемы?
Ну как вариант мааааленький скриптик на JavaScript
let timerId = setInterval(function(){
let request = new XMLHttpRequest();
request.open('GET', 'https://mysite.com/i-am-online.php', true);
request.send();
}
,60000); //количество миллисекунд через которое отправлять запрос, допустим раз в минуту
На JS можно обработать эти события. Можно отправить запрос на сервер (XHR, fetch), чтобы сообщить о событиях PHP.
window.addEventListener("load", e=> { /* страница полностью загрузилась во вкладку */ });
window.addEventListener("unload", e=> { /* пользователь закрыл вкладку */
/* (или пытается закрыть вкладку, так как это действие можно отменить)*/ });
window.addEventListener("focus", e=> { /* пользователь переключился на нашу вкладку */ });
window.addEventListener("blur", e=> { /* пользователь переключился на другую вкладку */ });
window.addEventListener("error", e=> { /* у пользователя произошла ошибка */ });
1. на РНР - точно нельзя.
2. Если страница открыта, то это совсем не значит, что пользователь её читает. Он может быть в другой программе или вообще на кухне
3. Идея заведомо дурацкая и не стоит ни одной минуты времени, затраченной на неё.