Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Ошибки при работе с системой (http://forum.sape.ru/forumdisplay.php?f=14)
-   -   Глюк кода сапы на некоторых хостингах (http://forum.sape.ru/showthread.php?t=7029)

big.bon 15.12.2007 22:17

Глюк кода сапы на некоторых хостингах
 
После двух дней битвы установили, что сайт отваливается, когда робот сапы заходит на сайт и выдаёт 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();

тоесть имя переменной, которая уж точно не определена из-вне.

Возьмите на карандаш.

Hedgehog 18.12.2007 17:33

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


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

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.