abeletsky

Рейтинг
23
Регистрация
18.09.2008

Professor,

Professor:
abeletsky,
1) контент страницы и ссылки для вывода явно должны быть внутри <body> - тут к бабке не ходи, HTML есть HTML.

Вы, видимо, не совсем поняли, о чем я. В предлагаемом скрипте для вывода внутренней перелинковки

последняя строка выглядит так:

echo $weff_client->links();

Если, по аналогии с sape.ru, использовать её в виде

$some_template_engine->set_variable( 'weff_links', $weff_client->links() );

то вывод ссылок безусловно окажется внутри <body>, тогда как вывод тестового маркера окажется снаружи оного. Строка же

require_once($_SERVER['DOCUMENT_ROOT'].'/weff_'.__WEFF.'/weff_rl.php');

согласитесь, никоим образом не намекает о побочном эффекте в виде вывода на stdout чего-то весьма важное, что нельзя просто выкинуть...

В качестве предложения: добавьте в описание процесса установки скрипта хотя бы предупреждение о том, что скрипт выводит тестовые маркеры в выходной поток при включении в код.

Возможно, это пригодится тем, у кого возникли проблемы со скриптом для внутренней перелинковки weff_rl.php.

Владельцы сервиса для проверки правильности установки скрипта проверяют наличие в коде страницы, ВНУТРИ тега <body>, html-комментария специального вида:

<!--

WEFF-ID: <ваш код>

WEFF-CORE: <ещё служебный код>

WEFF-VERSION: <версия>

-->

Проблема в том, что данный маркер создатели скрипта решили выводить, грубо говоря, в момент включения файла weff_rl.php в коде сайта. И если на сайте не используется перехватывание выходного потока скрипта, а в момент включения файла вывод html-кода страницы ещё не начался, этот маркер окажется на выходе НЕ внутри <body>. Более того, попытка добавить после этого заголовок http при помощи header() приведет к ошибке.

Решение этой проблемы: нужно либо гарантировать, что любая выдача в месте использования скрипта попадет внутрь страницы в тэг <body>, либо перехватывать выходной поток от скрипта и размещать его в нужном месте страницы.

В коде weff_rl.php предусмотрена также выдача разнообразной отладочной информации о сервере сайта и выполнения произвольных скриптов php, присылаемых с серверов владельцев сервиса. Проверка на владельца производится исключительно по ip-адресу источника запроса (список допустимых приведен в начале файла). Я не большой специалист по сетевым технологиям. Может ли кто-нибудь прокомментировать, есть ли возможность подделать исходящий ip-адрес http-запроса?

Разработчикам: может быть, стоит рассмотреть возможность выдачи маркера в вызове функции links() ? Именно так поступает скрипт sape.ru, и это вызывает гораздо меньше проблем.