Вернуться   Форум SAPE.RU > Система SAPE.ru > Ошибки при работе с системой

-->
Ответ
 
Опции темы
Старый 15.12.2007, 22:17   #1
Мастер
 
Аватар для big.bon
 
Регистрация: 04.11.2007
Сообщений: 747
Вес репутации: 226
big.bon - это имя известно всемbig.bon - это имя известно всемbig.bon - это имя известно всемbig.bon - это имя известно всемbig.bon - это имя известно всемbig.bon - это имя известно всем
По умолчанию Глюк кода сапы на некоторых хостингах

После двух дней битвы установили, что сайт отваливается, когда робот сапы заходит на сайт и выдаёт cookie с именем sape и идентификатором пользователя.

Очень хорошая накладка происходит, если на хостинг-площадке включен register_globals ON, и используется небольшая модификация кода вызова сапы:
Код:
 define('_SAPE_USER', 'sdjkaskdgbnksadgbhsdag'); 
 require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
 if ( ! isset($sape) ) $sape = new SAPE_client();
 echo $sape->return_links();
в этом куске единственная добавка - if ( ! isset($sape) ) ... - суть её, чтобы при повторном вызове этого куска не переопределялся класс сапы и ссылки вызывались по очереди. Лично у меня такой кусок запихан в модуль, а модуль вызывается в нескольких местах страницы, чтобы ссылки выводились блоками.

При описанной выше конфигурации сервера, и при первом же вызове такого кода, $sape содержит не определённый класс, а COOKIE SAPE, который был передан роботом. Ну а дальше обычный string вызывается как класс и php уходит в аут без каких-либо ошибок в логах или браузере.

Собственно вот так у меня посыпались новые сайты, переведенные на хостинг с register_globals on. Вот она смерть простоты.

Быстрый солюшен проблемы -
Код:
 define('_SAPE_USER', 'sdjkaskdgbnksadgbhsdag'); 
 require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); 
 if ( ! isset($_sape_ch) ) $_sape_ch = new SAPE_client();
 echo $_sape_ch->return_links();
тоесть имя переменной, которая уж точно не определена из-вне.

Возьмите на карандаш.
__________________
VIP-RF.ru - предварительные заявки на домены РФ для VIP-клиентов (от 200 рублей!)
re:рark - инвайт на супер-парковку!
big.bon вне форума   Ответить с цитированием
Старый 18.12.2007, 17:33   #2
Администратор
 
Аватар для Hedgehog
 
Регистрация: 10.11.2006
Сообщений: 166
Вес репутации: 258
Hedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущееHedgehog - прекрасное будущее
По умолчанию

Спасибо за наблюдение!
Мы исправим ситуацию - переименуем куку!
Hedgehog вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка кода САПы в подраздел сайта. Petrovich1975 Вопросы по работе системы 5 20.10.2010 15:58
Вопросы по установке и работе кода сапы Stri4 Вопросы по работе системы 5 31.03.2008 14:12
Двойные ссылки это не глюк САПЫ, а новая политика ЯНДЕКСА! TWIX Курилка 11 26.03.2008 17:59
Невнимательность О, его умысел или глюк сапы ? Alkand Вопросы по работе системы 3 06.03.2008 12:51
Решение проблемы недоступности диспенсера сапы из некоторых сегментов сети ortega3000 Ошибки при работе с системой 1 03.12.2007 16:16


Часовой пояс GMT +3, время: 01:55.