26

Re: Скрипт поиска по сайту на основе Яндекс.XML

Скрипт поиска обновлен до версии 0.4.

Добавлена возможность перелистывания страниц с помощью нажатия клавиш Ctrl и стрелочек влево/вправо.

ВКонтакте Facebook Twitter

27

Re: Скрипт поиска по сайту на основе Яндекс.XML

Скрипт поиска обновлен до версии 0.5.

Причина обновления - необходимость соответствия изменившимся условиям лицензии сервиса Яндекс.XML.

  • [li]Ссылка на Яндекс.XML выводится сверху, в первом экране выдачи, а не снизу, как было ранее.[/li]
    [li]В документации прописано условие при котором сайты находящиеся в Рекламной Сети Яндекса не ограничиваются в количестве запросов, если установлен код статистики оговоренный в 7 параграфе лицензии.[/li]

Обращайтесь на данный форум, если являетесь партнером Рекламной Сети Яндекса и нуждаетесь в помощи по установке кода статистики.

Отредактировано Hanut (2010-02-03 00:58:01)

ВКонтакте Facebook Twitter

28

Re: Скрипт поиска по сайту на основе Яндекс.XML

Произошла программная ошибка. выдает ошибку ...зарегал ip адрес в XML Яндекс sad все сделал по инструкции

29

Re: Скрипт поиска по сайту на основе Яндекс.XML

2) На странице отображения результатов поиска должна стоять ссылка на Яндекс.XML (http://xml.yandex.ru).

непонятно о чем идет речь? какая именно ссылка? и где стоять?

30

Re: Скрипт поиска по сайту на основе Яндекс.XML

keks пишет:

Произошла программная ошибка. выдает ошибку ...зарегал ip адрес в XML Яндекс sad все сделал по инструкции

Это может быть только если скрипт отрабатывает неверно.

Если есть такая возможность, посмотрите с помощью Firebug что возвращает скрипт при запросе.

keks пишет:

2) На странице отображения результатов поиска должна стоять ссылка на Яндекс.XML (http://xml.yandex.ru).

непонятно о чем идет речь? какая именно ссылка? и где стоять?

Необходимо на страницу поиска добавить ссылку http://xml.yandex.ru
Разместить ее можно где угодно.

ВКонтакте Facebook Twitter

31

Re: Скрипт поиска по сайту на основе Яндекс.XML

если я все правильно сделал - то в сценарии вот что написал firebug - Insert_Search(http_request.responseXML);

Сообщение добавлено Thu Sep 30 08:52:10 2010
а в Консоли пишет:


POST http://мой сайт/search/request.php    200 OK  4.16s

<?xml version="1.0" encoding="windows-1251" ?>
<root></root>

Сообщение добавлено Thu Sep 30 08:53:13 2010
http_request.send(request); search.js (строка 238)

Отредактировано keks (2010-09-30 07:50:28)

32

Re: Скрипт поиска по сайту на основе Яндекс.XML

keks
Ошибки не вижу, просто данные не получены от Яндекса и не обработаны. Посмотрите логи веб сервера, чтобы быть уверенным в отсутствии ошибок скрипта.

ВКонтакте Facebook Twitter

33

Re: Скрипт поиска по сайту на основе Яндекс.XML

в логах вообще нет ни чего sad

34

Re: Скрипт поиска по сайту на основе Яндекс.XML

помогите запустить скрипт)

35

Re: Скрипт поиска по сайту на основе Яндекс.XML

keks
Попробуем разобраться. Возможно причина в изменении ссылки для обращения к Яндексу, но пока старые ссылки еще работают и не должны вызывать проблем.

На этой странице можете выполнить тестовый запрос? http://xml.yandex.ru/test_query.xml
Вы уверены, что прописали выделенный IP сервера?

ВКонтакте Facebook Twitter

36

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut пишет:

keks
Попробуем разобраться. Возможно причина в изменении ссылки для обращения к Яндексу, но пока старые ссылки еще работают и не должны вызывать проблем.

На этой странице можете выполнить тестовый запрос? http://xml.yandex.ru/test_query.xml
Вы уверены, что прописали выделенный IP сервера?

тестовый запрос выполняется при условии: что я укажу свой IP адрес а не сервера...тогда выполняется...если ставлю IP сайта то он выдает ошибку что с этого адреса не разрешены запросы...


да прописываю выделенный IP адрес sad

Отредактировано keks (2010-10-01 09:15:13)

37

Re: Скрипт поиска по сайту на основе Яндекс.XML

keks
Попробуйте заменить ссылку http://xmlsearch.yandex.ru/xmlsearch/ в файле request.php (15 строка) на ту, которая предлагается Яндексом. Примерно она выглядит так:
http://xmlsearch.yandex.ru/xmlsearch?us … 99984c156a

Отредактировано Hanut (2010-10-01 09:42:00)

ВКонтакте Facebook Twitter

38

Re: Скрипт поиска по сайту на основе Яндекс.XML

понял..сейчас попробую

Сообщение добавлено Fri Oct  1 10:59:34 2010
к сожалению не работает все равно sad

Сообщение добавлено Fri Oct  1 11:01:40 2010
ведь сделал все по вашим указаниям! взял у хостера выделенный IP для сайта...произвел регистрацию на XML яндекса..в вел в конфиг все данные..может в нем проблема?)

39

Re: Скрипт поиска по сайту на основе Яндекс.XML

вот ответ хостинга:

На сколько я понимаю, данный скрипт осуществляет запрос с сайта к яндексу, яндекс принимает запросы только от зарегистрированного ip, однако из-за настроек хостинга по-умолчанию запрос осуществляется с ip адрес сервера, не смотря на наличие выделенного ip адреса. Осуществить запрос с выделенного ip возможно с помощью привязок (bind), но данная возможность в целях безопасности закрыта на тарифах виртуального хостинга. Она присутствует на тарифе *****, VPS и выделенных серверах

40

Re: Скрипт поиска по сайту на основе Яндекс.XML

keks
Очень жаль, но даже не знаю как решить эту проблему с хостингом. У нас VPS и на нем нет таких трудностей.

ВКонтакте Facebook Twitter

41

Re: Скрипт поиска по сайту на основе Яндекс.XML

я думаю придется отказаться от этог оскрипта sad жаль..спасибо за помощь в любом случае smile

42

Re: Скрипт поиска по сайту на основе Яндекс.XML

Поиск с недавнего времени перестал работать, сначала думал что временный глюк. Написал в хелп яндекса.
Ответ Яндекса:
Скорее всего, в своих запросах Вы используете старый синтаксис языка запросов
Яндекса. Вам нужно проверить, соответствует ли текст Вашего запроса новому
синтаксису:
http://help.yandex.ru/search/?id=1111313
Например, получать результаты поиска по определенному сайтe Вы можете
следующим образом:
запрос host:site.ru

Нет ли у кого готового решения с измененным синтаксисом для данного скрипта?

43

Re: Скрипт поиска по сайту на основе Яндекс.XML

Mia
Решение, конечно, есть.

1) Зайдите на http://xml.yandex.ru/settings.xml
2) Скопируйте ссылку, которую вы там сразу увидите, ее вид будет примерно такой:
http://xmlsearch.yandex.ru/xmlsearch?us … e99984c156
3) В файле request.php замените строку:
curl_setopt($ch, CURLOPT_URL,            'http://xmlsearch.yandex.ru/xmlsearch/');
На следующую, где поставьте свой урл из 2 пункта:
curl_setopt($ch, CURLOPT_URL,            'http://xmlsearch.yandex.ru/xmlsearch?us … 11549c4946');
4) В файле request.php сделайте замену строки:
$aLocal['host_s'] = sprintf('host="%s"', $aLocal['host']);
На:
$aLocal['host_s'] = sprintf('host:%s', $aLocal['host']);
Это исправит синтаксис запроса на новый.

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

ВКонтакте Facebook Twitter

44

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut
Большое спасибо за помощь, поиск работает )

Есть еще одна проблема, возможно не только у меня. Есть виджет яндекса, где используется поисковая форма. Сайт мой в кодировке windows-1251 и скрипт поиска тоже, когда с виджета посылается запрос (со страницы яндекса у которой кодировка utf-8), то на моей странице /search/, кодировка не преобразуется. Решил проблему так: добавил к форме поиска accept-charset="cp1251", однако как всегда подвел internet explorer, на нем кодировка не преобразуется.
Нашел в другом скрипте подобное что-то, но не силен в php
// Следующий код нужен для нормальной поддержки пейджинга поисковых результатов,
      // а также для преобразования UTF-8 строки запроса в кодировку Windows-1251.
      // $DOMAIN_NAME это имя хоста, например myhost.com.ua
    if (strstr($query, "host=") === FALSE )
      $full_query = $query.' << host="'.$DOMAIN_NAME.'"';
    else
      $full_query = stripslashes(iconv("UTF-8", "CP1251", $query));

Отредактировано Mia (2010-10-06 19:47:24)

45

Re: Скрипт поиска по сайту на основе Яндекс.XML

Mia
Вам надо конвертировать кодировку с помощью функции iconv().
[mono]iconv("UTF-8", "CP1251", $query);[/mono]

Конкретнее можно только по коду посмотреть.

ВКонтакте Facebook Twitter

46

Re: Скрипт поиска по сайту на основе Яндекс.XML

Вот здесь это реализовано http://developer.co.ua/posts/view/poisk … _xml_v_php

Отредактировано Mia (2010-10-06 21:29:04)

47

Re: Скрипт поиска по сайту на основе Яндекс.XML

Mia
А куда вы добавили [mono]accept-charset="cp1251"[/mono]? Что-то пока не понял.

ВКонтакте Facebook Twitter

48

Re: Скрипт поиска по сайту на основе Яндекс.XML

Hanut пишет:

Mia
А куда вы добавили [mono]accept-charset="cp1251"[/mono]? Что-то пока не понял.

accept-charset="cp1251 добавил к форме, ссылку отправил вам в ПМ.

49

Re: Скрипт поиска по сайту на основе Яндекс.XML

accept-charset="cp1251" вам здесь вряд ли поможет, надо обработать данные при их приеме. Посмотрите как в поле формы на вашем сайте вставляется текст запроса от Яндекса и конвертируйте POST['find'] данные строкой:

$find = iconv("UTF-8", "windows-1251", $query);

И уже переменную $find вставьте в поле формы.

В самом скрипте поиска ошибок вроде нет и он работает нормально, как я смог заметить.

ВКонтакте Facebook Twitter

50

Re: Скрипт поиска по сайту на основе Яндекс.XML

Не поможешь еще раз; нужно преобразовать в скрипте в escape-последовательность:

<script type="text/javascript"><!--


// Размер шрифтов
var yandex_ad_fontSize = 1;

// Настройки объявлений Директа
var yandex_direct_fontColor = '000000';
var yandex_direct_BorderColor = 'FBE5C0';
var yandex_direct_BgColor = 'FFF9F0';
var yandex_direct_headerBgColor = 'FEEAC7';
var yandex_direct_titleColor = '0000CC';
var yandex_direct_siteurlColor = '006600';
var yandex_direct_linkColor = '0000CC';
function yandex_direct_print(){ }

// Настройки Спец. размещения
var yandex_premium_fontColor = '000000';
var yandex_premium_headerBgColor = 'FEEAC7';
var yandex_premium_titleColor = '0000CC';
var yandex_premium_siteurlColor = '006600';
function yandex_premium_print(){ }

var yandex_r = Math.round(Math.random() * 100000);
document.write('<sc'+'ript type="text/javascript" src="http://an.yandex.ru/code/61513?rnd=' + yandex_r + '&text=поисковый_запрос&page-no=номер_страницы"></'+'sc'+'ript>');


//--></script>


Прмер:
$phrase = "слон";
$phrase = urlencode($phrase);

Сам никак не могу разобраться (