|
|
|
| Пример:
Юзер зашел на сайт, залогинился, сделал свои дела и закрыл окно.
Вопрос:
Как узнать сколько времени он провел на сайте (с момента логина до закрытия окна)? | |
|
|
|
|
|
|
|
для: St.Devil
(15.11.2006 в 02:42)
| | вобщем вроде можно с помощью даты или функции time()
например при авторизации сохрани дату или время авторизации, а после если пользователь ходит по сылкам то сохраняй еще и текущую дату или время,
ну а после просто сверяй дату или время авторизации с последней обновленной датой или временем и получишь время проведенное в онлайне
(это всего лишь моя мысль как это можно реализовать, но на форуме уже много интересный решений)
[поправлено модератором] | |
|
|
|
|
|
|
|
для: St.Devil
(15.11.2006 в 02:42)
| | Вероятно придётся фиксировать все обращения пользователей и вычислять разницу во времени в пределах одних суток. Подобная система реализована Loki в счётчики PowerCounter - счётчик подсчитывает сколько пользователей провели на сайте 1, 2, 3 и т.д. минут.
http://www.softtime.ru/info/powercounter30.php | |
|
|
|
|
|
|
|
для: cheops
(15.11.2006 в 13:34)
| | а почему говорят, что нельзя определить момент, когда пользователь закрыл
окно? и все эти "юзеры on-line" - понятие довольно относительное? | |
|
|
|
|
|
|
|
для: elenaki
(20.11.2006 в 10:13)
| | С одной стороны это связано с тем, что протокол HTTP не сессионный - т.е. постоянная связь клиент-сервер не поддерживается. Пользователь отсылает запрос и начинает слушать ответ. Сервер ответил и отключился. Читает в этот момент пользователь текст или выключает браузер не известно. Даже не известно докачал ли до конца пользователь файл, клиент не отчитывается ни по одной операции. В другой стороны современные Web-сервера сами не отслеживают эту ситуацию, без дополнительных модулей даже нельзя узнать скачал пользователь файл до конца или плюнул на пол дороге.
Каждый запрос клиента сервером рассматривается как новый, т.е. загрузка HTML-формы и получение POST-запроса после заполнения её, рассматриваются сервером как два независимых обращений. Почему собственно и возможна подделка данных и автопостинг. В такой ситуации OnLine пользователи достаточно условны (мы считаем пользователей OnLine тех, кто проявляет активность с интервалами не меньше 20 минут). Другие считают OnLine пользователями людей обращавшихся к страницам в течении последнего часа. Однако для более точных характеристик используются хиты и хосты. Это позволяет более точно прогнозировать нагрузку. | |
|
|
|
|
|
|
|
для: St.Devil
(15.11.2006 в 02:42)
| | Думаю можно решить проблему так. Создаем в таблице у каждого пользователя дополнительное поле online_time. В хейдере всех страниц прописываем запись в это поле time()+60 - получаем данные, когда пользователь бродит по сайту. И таким образом мы можем вести не только подсчет проведенного времени на сайте, но и простым запросом вывести всех пользователей, которые находятся в онлайн, тоесть всех тех, чьи online_time < time(). | |
|
|
|
|
|
|
|
для: St.Devil
(15.11.2006 в 02:42)
| | Всем пасиб) | |
|
|
|