Консультация № 83241
19.04.2007, 11:25
0.00 руб.
0 4 4
Здравствуйте, уважаемые эксперты!

У меня следующий вопрос:
С помощью каких языков возможно реализовать следующую идею и как ее реализовать конкретно?

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

То есть нужно, чтобы форма сохраняла слово и название поисковика
(во втором скрытом поле), которое ввел пользователь, чтобы найти мой сайт.

Или другими словами, у меня есть страница, и я хочу знать,
какие слова (и поисковики) создают мне трафик.

Заранее большое спасибо!

С уважением, Александр.

P.S. О разных сервисах, предоставляющих эту услугу я знаю. Мне нужна именно программная реализация этой идеи.

Обсуждение

Неизвестный
19.04.2007, 11:36
общий
это ответ
Здравствуйте, Primeluxuriant!
насколько я понял Вы хотите узнать откуда посетитель попал на Ваш сайт?
HTTP_REFERER
Неизвестный
19.04.2007, 11:37
общий
это ответ
Здравствуйте, Primeluxuriant!
<font color=red>
Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума "О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".
=<a href=http://rusfaq.ru/info/user/9594>Maxim V. Tchirkine</a>=</font>
Неизвестный
19.04.2007, 11:50
общий
это ответ
Здравствуйте, Primeluxuriant!

Реализовать это можно с помощью PHP.
Адрес страницы, с которой пришел пользователь находится в переменной $_SERVER["HTTP_REFERER"];
Вы можете его сохранять в базу данных, а потом обрабатывать.
Почитайте <a href=http://www.compdoc.ru/internet/php/countvisit/>эту</a> и <a href=http://www.mycomp.com.ua/text/9481>эту</a> статьи.

Удачи!
Неизвестный
19.04.2007, 13:58
общий
это ответ
Здравствуйте, Primeluxuriant!
В приложении класс cimus_referrer.php и вспомогательный файл poisk.ini.
Класс анализирует переменную HTTP_REFERER и выдаёт следующую информацию
[site] =>поисковая система
[search] => поисковый запрос
[page] => номер страницы с которой перешёл пользователь

Пример использования-
$class = new Referrer(); - вызываем класс
$class->url=‘запрос‘; - поисковый запрос (HTTP_REFERER), необязательный параметр
$result=$class->refer(); - получаем результат


Приложение:
Файл cimus_referrer.php <?class Referrer {/** переменная хранит HTTP_REFERER*/var $url= ‘‘;var $site= ‘‘;var $search=‘‘;var $cimus=‘‘;var $page=‘‘; function __construct() { $this->url = urldecode($_SERVER[‘HTTP_REFERER‘]); $this->cimus=parse_ini_file(‘./poisk.ini‘,‘1‘); } /* * Функция проверяет, * а) есть ли вообще реферер, * б) не является ли он внутренним, то есть с вашего же сайта */ function check_url() { if (($this->url == ‘‘) || stristr ($this->url, $_SERVER[‘HTTP_HOST‘])) { return false; } return true; } /* * Функция преобразует строку из формата URL в обычный текст. */ function decode($count) { $url=$this->url; if($count==‘2‘) { $url=urldecode(urldecode($this->url)); } else { $url=urldecode($this->url); } return $url; } /* * Функция проверяет принадлежность к Yandex.ru, Ya.ru и выдёргивает поисковый запрос */ function refer() { $result=‘‘; if(!$this->check_url()) { return false; } foreach($this->cimus as $key => $value) { if(stristr($this->url, $key)) { $this->url=$this->decode($value[‘urldecode‘]); $this->site = $value[‘site‘]; if(preg_match("|{$value[‘token‘]}([^&]*)|", $this->url.‘&‘, $result)) { if($value[‘convert‘] != ‘‘) { //$this->search=convert_cyr_string($result[1], $value[‘convert‘], ‘w‘); mb_convert_variables(‘WINDOWS-1251‘, $value[‘convert‘],$result[1]); $this->search=$result[1]; } else { $this->search=$result[1]; } } $this->page($value[‘page‘],$value[‘corr_page‘]); $result=array(‘site‘ => $this->site, ‘search‘ => $this->search, ‘page‘ => $this->page ); break; } } $this->url= ‘‘; $this->site= ‘‘; $this->search=‘‘; $this->page=‘‘; return $result; } /* * Функция пролучает страницу поискового запроса. */ function page($page,$corr_page) { if($page != ‘‘) { if(stristr($this->url, $page)) { preg_match("|$page([0-9]+)&|", $this->url.‘&‘, $result); $this->page=$result[1]; if($corr_page != ‘‘) { $this->page=floor($this->page/$corr_page)+1; } } else { $this->page=1; } } else { $this->page=1; } }}?>==========================================файл poisk.ini[yandpage]site="Yandex.ru";token="text=";urldecode="2";convert="";KOI8-Rpage="p=";corr_page="1";[yandsearch]site="Yandex.ru";token="text=";urldecode="1";convert="";page="";corr_page="1";[google.com/search]site="Google.com";token="q=";urldecode="1";convert="UTF-8";page="start=";corr_page="10";[google.ru/search]site="Google.ru";token="q=";urldecode="1";convert="UTF-8";page="start=";corr_page="10";[images.google.com]site="Images.google.com";token="q=";urldecode="1";convert="UTF-8";page="start=";corr_page="20";[search.msn.com]site="Msn.com";token="q=";urldecode="1";convert="UTF-8";page="first=";corr_page="10";[search.yahoo.com]site="Yahoo.com";token="p=";urldecode="1";convert="UTF-8";page="b=";corr_page="10";[search.rambler.ru]site="Rambler.ru";token="words=";urldecode="1";convert="";page="start=";corr_page="15";[sm.aport.ru]site="Aport.ru";token="r=";urldecode="1";convert="";page="p=";corr_page="1";[go.mail.ru]site="Go.mail.ru";token="q=";urldecode="1";convert="";page="sf=";corr_page="10";[meta.ua/search]site="Meta.ua";token="q=";urldecode="1";convert="";page="pg=";corr_page="1.01";[all.by]site="All.by";token="query=";urldecode="1";convert="";page="page=";corr_page="1.01";[search.lycos.com]site="Search.lycos.com";token="query=";urldecode="1";convert="";page="page=";corr_page="1";[punto.ru]site="Punto.ru";token="text=";urldecode="1";convert="";page="page=";corr_page="1";[av.rds.yahoo.com]site="Punto.ru";token="q=";urldecode="1";convert="UTF-8";page="stq=";corr_page="10";[nigma.ru]site="Nigma.ru";token="q=";urldecode="1";convert="";page="cur_page=";corr_page="20";[results.metabot.ru]site="Metabot.ru";token="st=";urldecode="1";convert="";page="&gp=";corr_page="1.01";[google.com/custom]site="Poisk.com";token="q=";urldecode="1";convert="UTF-8,windows-1251";page="start=";corr_page="10";[goon.ru]site="Goon.ru";token="query=";urldecode="1";convert="";page="p=";corr_page="1.01";[rambler.ru/lite]site="R0.ru";token="words=";urldecode="1";convert="";page="start=";corr_page="10";[search.km.ru]site="Search.km.ru";token="&sq=";urldecode="1";convert="";page="&p=";corr_page="1.01";[volginfo.ru]site="Volginfo.ru";token="&q=";urldecode="1";convert="";page="np=";corr_page="1";[h-ck.ru]site="H-ck.ru";token="q=";urldecode="1";convert="";page="pagenumber=";corr_page="1.01";[medpoisk.ru]site="Medpoisk.ru";token="q=";urldecode="1";convert="";page="np=";corr_page="1";[turtle.ru]site="Turtle.ru";token="words=";urldecode="1";convert="";page="page=";corr_page="1.01";[links.crack.ru]site="Links.crack.ru";token="st=";urldecode="1";convert="";page="&ot=";corr_page="20";[sochi.org.ru]site="Sochi.org.ru";token="&q=";urldecode="1";convert="KOI8-R";page="&np=";corr_page="1";[alloy.ru]site="Alloy.ru";token="query=";urldecode="1";convert="";page="page=";corr_page="1.01";[agropoisk.ru]site="Agropoisk.ru";token="query=";urldecode="1";convert="";page="p=";corr_page="1.01";[poiskknig.ru]site="Poiskknig.ru";token="st=";urldecode="1";convert="UTF-8";page="page=";corr_page="1.01";[search.tut.by]site="Search.tut.by";token="query=";urldecode="1";convert="UTF-8";page="page=";corr_page="1";[bukinist.agava.ru]site="Bukinist.agava.ru";token="query=";urldecode="1";convert="";page="stpos=";corr_page="15";[lupa.ru]site="Lupa.ru";token="Query=";urldecode="1";convert="";page="Page=";corr_page="1.01";[altavista.com]site="Altavista.com";token="q=";urldecode="1";convert="UTF-8";page="stq=";corr_page="10";===========================================Пример использования-print ‘<pre>‘;$class = new Referrer();$class->url=‘http://www.yandex.ru/yandsearch?text=%EF%F0%E8%E2%E5%F2+privet&stype=www‘;print_r($class->refer());$class->url=‘http://www.google.ru/search?q=%D0%BD%D0%B8%D0%B6%D0%BD%D0%B5%D0%B5+%D0%B1%D0%B5%D0%BB%D1%8C%D1%91+%D0%BC%D1%83%D0%B6%D1%81%D0%BA%D0%BE%D0%B5&hl=ru&lr=&newwindow=1&start=70&sa=N‘;print_r($class->refer());$class->url=‘http://www.yandex.ru/yandpage?&q=144938505&p=2&text=%ED%E8%E6%ED%E5%E5+%E1%E5%EB%FC%E5+%EC%F3%E6%F1%EA%EE%E5+%EE%EF%F2%EE%EC&stype=www‘;print_r($class->refer());
Форма ответа