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


Автор: Wolf1994 1.1.2005, 19:50
Есть ли на PHP функция, позволяющая узнать с какого сайта пришёл посетитель, и по каким ключевым словам, то есть альтернатива Spy/Hot-Log? Лучшее что нашёл в Интернете - анализатор Apache log, но мне нужны только две эти функции. smile

Автор: IZ@TOP 1.1.2005, 19:52
Код

echo $_SERVER['HTTP_REFERER']


Мог бы поиском воспользоваться. Темы с именно таким же назваением были уже.

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

Автор: Wolf1994 2.1.2005, 15:14
то есть с помощью этой же функции можно получить URL запроса, и остаётся его только "отпрепарировать"?

Автор: Mal Hack 2.1.2005, 15:21
Wolf1994
эта ПЕРЕМЕННАЯ содержит адрес страницы откуда пользователь пришел. Если ее не существует, значит юзер пришел не по ссылке.

Автор: penizillin 2.1.2005, 15:33
не факт, эти данные зачастую режутся.

Автор: Mal Hack 2.1.2005, 15:45
penizillin
ну заголовок всегда можно подделать, этого никто не отрицает...

Автор: Opik 2.1.2005, 18:43
Mal Hack
penizillin
Поэтому счетчики получают инфу не из PHP реферера, и через JavaScript

Автор: IZ@TOP 2.1.2005, 20:20
Opr, откуда знаешь такие подробности? Я например не знал что с помощью JavaScript'a можно узнать откуда пришел юзер, и тем более чем та информация которую получит JavaScript будет отличаться от той что хранится в HTTP_REFERER?
Добавлено @ 20:22
Цитата(penizillin @ 2.1.2005, 16:33)
не факт, эти данные зачастую режутся.

Приведите хотя бы один пример для чего это делается, и насколько часто по статистике (если такая есть) эти данные "режутся" и преподносится измененная информация? И для чего это нужно и кому?

Автор: Mal Hack 2.1.2005, 20:51
Цитата
Opr, откуда знаешь такие подробности? Я например не знал что с помощью JavaScript'a можно узнать откуда пришел юзер,

http://forum.vingrad.ru/index.php?showtopic=37998&st=0&#entry286326
Цитата
и тем более чем та информация которую получит JavaScript будет отличаться от той что хранится в HTTP_REFERER?

JavaScript может вытащить ее из браузера, как histiby.back(1), т.е. если рефферер режется сервером на JavaScript это не действует.
Цитата
Приведите хотя бы один пример для чего это делается, и насколько часто по статистике (если такая есть) эти данные "режутся" и преподносится измененная информация? И для чего это нужно и кому?

Точно не вспомню, но была банерная сеть, клики от которой шли без рефера, сделано это было, чтобы всякие счетчики Рамблера или Мэйла не сочли за накрутку.

Автор: Opik 2.1.2005, 22:29
IZ@TOP
Код

<!--Rating@Mail.ru COUNTER--><script language="JavaScript"><!--
d=document;a='';a+=';r='+escape(d.referrer)
js=10//--></script><script language="JavaScript1.1"><!--
a+=';j='+navigator.javaEnabled()
js=11//--></script><script language="JavaScript1.2"><!--
s=screen;a+=';s='+s.width+'*'+s.height
a+=';d='+(s.colorDepth?s.colorDepth:s.pixelDepth)
js=12//--></script><script language="JavaScript1.3"><!--
js=13//--></script><script language="JavaScript"><!--
d.write('<a href="http://top.mail.ru/jump?from=97025"'+
' target=_top><img src="http://top.list.ru/counter'+
'?id=97025;t=210;js='+js+a+';rand='+Math.random()+
'" alt="Рейтинг@Mail.ru"'+' border=0 height=31 width=88></a>')
if(js>11)d.write('<'+'!-- ')//--></script><noscript><a
target=_top href="http://top.mail.ru/jump?from=97025"><img
src="http://top.list.ru/counter?js=na;id=97025;t=210"
border=0 height=31 width=88
alt="Рейтинг@Mail.ru"></a></noscript><script language="JavaScript"><!--
if(js>11)d.write('--'+'>')//--></script><!--/COUNTER-->

Код счетчика майла с этого форума. Разберем его smile
Код

<!--
s=screen;a+=';s='+s.width+'*'+s.height
a+=';d='+(s.colorDepth?s.colorDepth:s.pixelDepth)
js=12//-->
значит в переменной s - у нас разрешение экрана.
d - цветовая гамма, или как её там smile
Код

<!--
d=document;a='';a+=';r='+escape(d.referrer)
js=10//--></script><script language="JavaScript1.1"><!--
a+=';j='+navigator.javaEnabled()
js=11//-->

r - referrer
j - поддерживается ли Java

Цитата
Приведите хотя бы один пример для чего это делается, и насколько часто по статистике (если такая есть) эти данные "режутся" и преподносится измененная информация? И для чего это нужно и кому?

файрволл

Автор: Wolf1994 3.1.2005, 14:43
Вот допустим переменная refferer содержит такую абракадабру:

Код

http://www.yandex.ru/yandpage?q=1661287152&p=10&ag=d&qs=stype%3Dwww%26nl%3D0%26text%3D%25C9%25C7%25D2%25D9%2Bfreeware


И как из неё вычленить что - нибудь членораздельное (keywords)? smile Однажды получил в OE письмо с такими символами - так подходящей кодировки и нашёл smile

Автор: penizillin 3.1.2005, 19:43
urldecode() и переменную text.

Автор: Wolf1994 5.1.2005, 14:03
выполнил декодировку, но многие поисковики (Yandex) работают в KOI-8, можно ли преобразовать результат из одной кодировки в другую?

Автор: Mal Hack 5.1.2005, 15:00
http://php.net/convert_cyr_string

Автор: Wolf1994 7.1.2005, 16:18
Оказалось что с Yandex приходят не только в koi-8, но и в win-1251. Можно ли определить в какой кодировке сообшение и если она не подходит, то, только тогда, выполнить декодирование?
Или просто выводить в результатах сообщение в разных кодировках?
Но, на HotLog поисковый запрос выводился всегда корректно. smile

Автор: Mal Hack 7.1.2005, 16:25
Цитата(Wolf1994 @ 7.1.2005, 16:18)
Можно ли определить в какой кодировке сообшение и если она не подходит, то, только тогда, выполнить декодирование?

Ага
iconv_get_encording();
потом перекодировать с помощью iconv();

Данные функции требуют дополнительной библиотеки.

Автор: Wolf1994 10.1.2005, 13:47
А можно ли извлечь необходимые данные о посетителе из JavaScript? То есть как присвоить переменной в PHP, значение переменной из JavaScript?

Автор: Mal Hack 10.1.2005, 15:00
http://forum.vingrad.ru/index.php?showtopic=39191&view=findpost&p=298849
Пример чере IFRAME

Автор: penizillin 10.1.2005, 18:49
Mal Hack: или составлять <img src="file.php?data=[...], как, имхо, лучшая альтернатива.

Автор: Mal Hack 10.1.2005, 19:11
penizillin
Конечно, такой вариант наиболее предпочтителен...
Как-то я забыл про него smile

Автор: IZ@TOP 10.1.2005, 22:59
penizillin, просто тот вариант наглядно показывал как можноь передать параметры в PHP скрипт smile

Автор: Wolf1994 11.1.2005, 21:51
А как на JavaScript или PHP можно узнать откуда пришёл посетитель: город/страна?
То, что пока получилось (код корявый, но работает нормально):
http://www.wolf-ware.ru/soft/rus/internet/php/ref.shtml

Автор: penizillin 11.1.2005, 22:04
на php можно geoip использовать.

Автор: Mal Hack 11.1.2005, 22:25
penizillin
Поясни, а что это?
ip2country я знаю (ну слышал)... А это? Тоже самое?

Автор: penizillin 11.1.2005, 23:19
например http://pear.php.net/pepr/pepr-proposal-show.php?id=91#toc4

Автор: Wolf1994 12.1.2005, 15:27
насколько я понимаю - эта функция использует базу данных для не-СНГ стран. А можно ли узнать страну/город в СНГ?
Да и как-то сложно всё там - должны быть модули для Apache/на C...
Может есть где - нибудь база, ориентированная в первую голову на СНГ, в plain text формате?
Кстати о ip2country я на php.net ничего не нашёл smile

Автор: penizillin 12.1.2005, 16:09
Цитата(Wolf1994 @ 12.1.2005, 13:27)
насколько я понимаю - эта функция использует базу данных для не-СНГ стран.
нет
Цитата(Wolf1994 @ 12.1.2005, 13:27)
Да и как-то сложно всё там - должны быть модули для Apache/на C
Цитата
You must first download and decompress a database. You can get a free country database from http://www.maxmind.com/app/geoip_country.
внимательно прочтите цитату с maxmind.com.
Цитата(Wolf1994 @ 12.1.2005, 13:27)
Кстати о ip2country я на php.net ничего не нашёл
www.google.com/search?q=ip2country

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