Как определить «длительность посещения» по IP-адресу? - PullRequest
0 голосов
/ 23 февраля 2012

Я знаю, что можно определить продолжительность посещения посетителем сайта, используя его IP-адрес. Но как мне узнать, сколько часов или даже минут они находятся в сети на моем сайте, используя PHP-скрипт?

Ответы [ 4 ]

1 голос
/ 23 февраля 2012

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

Но вы можете получить приблизительное время покупки, подсчитав время между первым посещением и последним посещением за один день или что-то еще. Вы можете сохранить время каждого посещения и «из ip», а затем сделать некоторые вычисления.

Кроме того, лучшим решением может быть использование сторонней аналитической службы, например Google analytics . Это бесплатно и очень мощно.

1 голос
/ 23 февраля 2012

Я не думаю, что вы можете собрать точные данные, но закрытый звонок можно сделать вот так.

a) определить, когда пользователь входит в систему со ссылкой на IP-адрес.

b) определить, когда пользователь покидает веб-сайт.

сначала вы можете создать запись IP-адресов, которые просматривают ваш веб-сайт, сохранив их в базе данных или в любом другом месте.

чтобы определить, кто просматривает ваш сайт, вы можете попытаться получить IP-адрес пользователя, как только он / она войдет на сайт, и сохранить его где-нибудь вместе со временем входа в систему. например, вы можете сохранить его в базе данных со следующими записями.

ipAddress |  LoginTime  |  LogoutTime

как только кто-то заходит на ваш сайт, вы сохраняете ipAddress в своей записи со временем входа в систему. но перед хранением необходимо убедиться, что дубликат не существует. перед сохранением проверьте, существует ли этот ipAddress. если он существует, значит, пользователь еще не закрыл ваш сайт.

Теперь вам нужно определить, когда пользователь покидает ваш сайт, вы можете сделать это с помощью javascript, используя window.onunload, который должен сообщать вам, когда пользователь покидает ваш сайт. Вы можете сделать ajax-вызов, чтобы узнать, когда пользователь покидает сайт.

$(window).bind('beforeunload', function() {
    // ajax call
    // write to db..
});

таким образом, вы можете узнать, когда пользователь заходит и покидает ваш сайт. Я не говорю, что это так. но это должно помочь вам понять, построить свою собственную логику. надеюсь, это поможет вам.

0 голосов
/ 24 февраля 2012

Совершенно другой способ сделать это - получить доступ к вашему хранилищу сеансов.

Если вы можете получить доступ к папке, в которой хранятся ваши сеансы, вы можете получить список самых последних обновленных или самых старых сеансов.Если что-то неактивное в течение определенного периода времени, вы сможете определить, как долго оно неактивно, по тому, как долго файл сеанса не затрагивался.

Тогда ваше приложение / веб-сайт будет решатьопределить, как сохранить файл сеанса обновленным, пока пользователь находится на сайте.Если вы сохраняете их IP в файле их сеанса, вы можете снова прочитать их из файла.

Это также будет зависеть от того, как часто ваш сервер выполняет сброс файлов сеанса, но если эти вещи находятся под вашим контролем,это еще одна техника, заслуживающая рассмотрения.

0 голосов
/ 23 февраля 2012

Один простой способ сделать это через Ajax.

Откройте или запустите сеанс для пользователя, и Ajax пингует сервер раз в минуту.

В ваших логах или дБ или квартире вы можете записать время начала этих сессий для этого ip и записать время последнего пинга.

Если вы продолжаете записывать время последнего пинга, то вы должны быть близко к внутренней. Минута продолжительности посещения ваших пользователей.

UPDATE:

Вы можете сделать то же самое со скрытым iframe с мета-обновлением каждые 60 секунд. Суть ответа заключалась в том, чтобы предложить альтернативную технику, чтобы помочь постеру, приведя пример с AJAX. Конечно, есть и другие способы сделать это.

...