Страницы

Поиск по вопросам

суббота, 11 апреля 2020 г.

Время проведенное на сайте

#php #mysql

                    
Здравствуйте. 
Хочу сделать чтоб пользователь мог видеть сколько времени всего он провел на сайте
в онлайн. Но для того чтоб его вывести его нужно записать в базу. Как делать запросы
в базу я знаю, только вот не пойму как его записывать в базу.. чтоли при каждом обновлении
страницы пользователям запись делать, или как?
Буду благодарен за помощь.
    


Ответы

Ответ 1



Тут есть 2 варианта 1) Время проведённое с момента авторизации на сайте 2) Общее время проведённое на сайте В первом случае, записываем время авторизации в сессию в формате mktime и высчитываем время Второй вариант описан выше

Ответ 2



Для начала определитесь, что значит "время, проведенное на сайте". Если это время между загрузкой и выгрузкой страницы, то просто скриптом на сайте делаете так: onload - записали текущее время-дату onunload - отослали на сервер разницу между текущим время-датой и начальным, в секундах, допустим. Плюс ID пользователя. На стороне сервера по ID пользователя суммируем все цифры. Но что делать, если время, пока страница открыта в фоновой вкладке и забыта, не хочется считать? Или если сайт открыт в трех вкладках - пользователь в три раза больше проводит там времени? В общем, начните с определения, с ТЗ для самого себя, и ответ придет.

Ответ 3



Если нужно проверять раз в 5 минут, то будет проще делать все это средствами jquery setInterval(function(){ // такой простой код только для примера $.get('/updateTime.php?user=USER_ID') }, 60000 * 5) Такой асинхронный вариант немного лучше чем каждый раз при обновлении страницы писать в базу. Плюс к тому пользователю не придется обновлять страницы, если он находится на сайте - например медленно читает длинную статью.

Комментариев нет:

Отправить комментарий