#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) Такой асинхронный вариант немного лучше чем каждый раз при обновлении страницы писать в базу. Плюс к тому пользователю не придется обновлять страницы, если он находится на сайте - например медленно читает длинную статью.
Комментариев нет:
Отправить комментарий