Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Счетчик на php и javascript


Автор: kulibinka 22.1.2008, 17:44
Есть куча своих сайтов на хостингах без пхп.  И один http://statserver.ru с пхп.

Задача: получить с сайтов без пхп всю статистику о посетителях.

Нужна инфа: 
ip - айпи человека, 
agent - его юзерагент, 
from - с какой странички пришел, 
thispg - что за страничка.

Как решал: в каждую страницу вставлял <script src="counter.js" language="javascript"  type="text/javascript"></script>, где counter.js это 

Код

document.write('<img src="http://statserver.ru/new_stat/stat.php?log=' + escape(document.referrer) + '|' + escape(document.URL)+'" border=0 width=1 height=1>')


И уже на стороне http://statserver.ru этот урл разбирался и по нему обрабатывалась статистика.
Айпи получаем через getenv('REMOTE_ADDR'), юзерагента через getenv('HTTP_USER_AGENT').

Вроде бы и все хорошо, но есть проблема: длинна гет-запрос может быть максимум 255 (насколько я помню), а сумма урлов страницы и реферера у меня может быть легко больше, и значит статистика коцается.

Тут, насколько я вижу, есть один путь: getenv('REQUEST_URI') получает урл страницы, но без хоста. Вопрос: как в js получить хост чтобы передавать только хост, а не полностью урл страницы через document.URL?

пс: в js я очень не силен smile

Автор: Sardar 22.1.2008, 18:34
Цитата(kulibinka @  22.1.2008,  16:44 Найти цитируемый пост)
длинна гет-запрос может быть максимум 255 (насколько я помню)

Мах. длина URL'а 2кб, здесь проблемы быть не может.

Автор: Wilmor 22.1.2008, 21:49
Тебе сам код нужен. Если да то всё определяется через navigator. 

Код

<html>
<script language="javascript">
var an = navigator.appName; //название браузера
var av = navigator.appVersion; //версия цифрами
var acp = navigator.appCodeName; // кодовое имя браузера
var ua = navigator.userAgent; // сообщает заголовок протокола, используемого браузером во время работы с серверами
document.write("Используется <b>" + an + "</b> Версия <b>" + av + "</b> Кодовое имя <b>" + acp + "</b> Имя и версия <b>" + ua + "</b>.");
</script>
</html>

Автор: kulibinka 22.1.2008, 22:00
Цитата

Тебе сам код нужен


Меня интересовали именно
Цитата

ip - айпи человека, 
agent - его юзерагент, 
from - с какой странички пришел, 
thispg - что за страничка.


Но как оказалось, действительно "Мах. длина URL'а" большаааая smile
Так что Sardar - спасибо, проблема решена ибо проблемы и не было.

Автор: egao 22.1.2008, 22:54
Sardar, максимальный размер урла зависит от настроек сервера. в частности в апаче по дефолту - 1кб

Автор: InfMag 23.1.2008, 10:59
Вобще поидее URL и реферер ты могла средствами PHP получить через тот же $_SERVER[], а так клиенту проще будет обмануть счетчик, причем намного проще  smile ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)