26

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

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

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

27 (изменено: Hanut, 2010-02-03 00:58:01)

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

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

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

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

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

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
Разместить ее можно где угодно.

31 (изменено: keks, 2010-09-30 07:50:28)

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)

32

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

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

33

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

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

34

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

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

35

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

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

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

36 (изменено: keks, 2010-10-01 09:15:13)

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

Hanut сказал:

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

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

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


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

37 (изменено: Hanut, 2010-10-01 09:42:00)

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

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

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 и на нем нет таких трудностей.

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']);
Это исправит синтаксис запроса на новый.

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

44 (изменено: Mia, 2010-10-06 19:47:24)

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));

45

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

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

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

46 (изменено: Mia, 2010-10-06 21:29:04)

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

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

47

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

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

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 вставьте в поле формы.

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

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);

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