Professor,
Вы, видимо, не совсем поняли, о чем я. В предлагаемом скрипте для вывода внутренней перелинковки
последняя строка выглядит так:
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, и это вызывает гораздо меньше проблем.