Система не видит код на странице, пока не включу force_show_code
Добрый день.
Развернул папку, поставил права, установил код. На странице пусто. Захожу в SAPE.RU, вбиваю сайт - говорит проверьте установку кода. Если ставлю force_show_code=true, то на странице по прежнему НИЧЕГО не показывается, но зато SAPE нормально все находит и начинает индексировать сайт. ИМХО это хак, который непонятно как скажется на работоспособности в дальнейшем. Что делать? Дополнительная информация: 1. Код PHP выполняется, из вышесказанного это понятно. 2. В links.db записи добавляются a:3:{s:18:"__sape_delimiter__";s:0:"";s:16:"__sape _new_url__";s:17:"<!--check code-->";s:12:"__sape_ips__";a:5:{i:0;s:13:"81.176.228.7 3";i:1;s:13:"87.242.7 4.101";i:2;s:14:"81.176.230.132";i:3;s:13:"81.176. 228.49";i:4;s:13:"80.251.136.38";}} 3. Окружение: php-5.1.6-12.el5 php-cli-5.1.6-12.el5 php-common-5.1.6-12.el5 php-devel-5.1.6-12.el5 php-ldap-5.1.6-12.el5 php-mbstring-5.1.6-12.el5 php-mysql-5.1.6-12.el5 php-pdo-5.1.6-12.el5 4. Файрвол опущен, SELinux выключен 5. Стоит Front-End (nginx 0.5.31)\Back-End (apache httpd httpd-2.2.3-7.el5.centos) Фронт отдает на апач запрос с передачей полей: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 6. Код установлен несколько дней назад, т.е. свежий. 7. Код расположен в отдельном файле, но подключается НЕ через подзапрос. require_once( dirname(__FILE__) . '/templates/tables4.php'); 8. Проблема скорее всего не в сайте, а в коде либо сервере, т.к. стоит несколько сайтов, ни один SAPE не увидел без force_show_code Спасибо. |
передавайте хост и адрес страницы напрямую - это часто описывалось.
force_show_code дает то что выводится кометарий по которому сапа узнает что ваш сайт содержит скрипт. |
Цитата:
читайте вопрос 7 б) в частых вопросах |
Спасибо за помощь. К сожалению эту подсказку я читал, но, похоже, это не мой случай и вот почему:
1. ИЩЕМ "ВЫВОДИТСЯ КОММЕНТАРИЙ" Я тоже ожидал, что Цитата:
Вот как подключается: <?php define('_SAPE_USER', '1*******************'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $o['force_show_code'] = true; $o['verbose'] = true; $sape = new SAPE_client($o); echo "SAPE START"; $sape->return_links(); echo "SAPE STOP"; ?> Вот что в HTML: SAPE STARTSAPE STOP Т.е. нет никакого вывода комментария. 2. ПРОВЕРЯЕМ ОКРУЖЕНИЕ Создаю файлик info.php с вызовом phpinfo и вижу следующее в выводе: Apache Environment HTTP_HOST mrate.net HTTP_X_REAL_IP 195.34.***.*** HTTP_REMOTE_ADDR 195.34.***.*** HTTP_X_FORWARDED_FOR 195.34.***.*** SERVER_NAME mrate.net SERVER_ADDR 127.0.0.1 SERVER_PORT 80 REMOTE_ADDR 127.0.0.1 REQUEST_URI /info.php SCRIPT_NAME /info.php HTTP Request Headers HTTP Request GET /info.php HTTP/1.0 Host mrate.net X-Real-IP 195.69.***.*** REMOTE_ADDR 195.69.***.*** X-Forwarded-For 195.69.***.*** Т.е., как видите, переменная HTTP_HOST отдается корректно. Также я не понял как может быть вот такое Цитата:
Имхо используемые переменные переданы корректно. Также непонятно, почему нет никакого воздействия директивы verbose? :( Спасибо |
И все таки. Хочется получить помощь от админов.
$o['host'] = mrate.net'; $sape = new SAPE_client($o); unset($o); не помогло, да и не должно было помочь. |
Цитата:
если так и не получится присылайте фтп доступ мне в личку + все данные на аккаунт |
Да, видимо когда копировал строку из mc потерял кавычку.
Отписался в личку. Спасибо. |
Благодаря Avalon и персоналу SAPE проблема решилась быстро, за что им отдельная благодарность.
Теперь, собственно пояснение: Похожая проблема может быть у пользователей, использующих Front-End(nginx, lighttpd etc.) или Reverse Proxy(squid etc.) на сервере, к сожалению таких много. Возможны проблемы для пользователей, которые ходят через Proxy. Причина: В настоящее время скрипт sape ориентируется на поле REMOTE_ADDR для определения адреса клиента. Вполне очевидно, что в нашем случае это будет адрес Front-End или Proxy (как правило, если Front-End стоит на том-же сервере - 127.0.0.1). При этом настоящие значения принято заносить в HTTP_X_REAL_IP и HTTP_REMOTE_ADDR. Как лечить: Пока в sape.php не внесли изменения (надеюсь, что их внесут), вот решение персонала SAPE (вставить в начало подключения скрипта) $_SERVER[REMOTE_ADDR] = $_SERVER[HTTP_REMOTE_ADDR]; вот моя вариация на тему их решения, ИМХО более верная. Это если не вмешиватся в sape.php if (isset($_SERVER['HTTP_X_REAL_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP']; else { if (isset($_SERVER['HTTP_REMOTE_ADDR'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_REMOTE_ADDR']; } Полностью подключение выглядит вот так: <?php define('_SAPE_USER', '****'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); if (isset($_SERVER['HTTP_X_REAL_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP']; else { if (isset($_SERVER['HTTP_REMOTE_ADDR'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_REMOTE_ADDR']; } $sape = new SAPE_client(); echo $sape->return_links(); ?> Все. Надеюсь это будет полезным. Спасибо персоналу SAPE за быструю и квалифицированную помощь. |
Сделали новую версию кода. Можно скачивать, если кому-то интересно.
|
в соответствии с вышеописанным глюком
|
Часовой пояс GMT +3, время: 14:59. |
Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.