Полностью поддерживаю.
Во первых об бесплатный (для некоммерческого и использования)
Во вторых очень удобный.
И что меня удивило в некоторых фтп клиентах (а именно в FAR и CutFTP), так это то, что там нельзя рекурсивно задать права доступа для подпапок и файлов в папках. Может конечно я просто не нашёл этой возможности, но если мыслить здраво, то это должно задаваться там же, где и изменения прав доступа на файл, как в SmartFTP.
Сейчас у Вас php работает в безопасном режиме (Safe Mode = On), который накладывает некоторые ограничения на работу php. Скрипту не нравятся какие-то из ограничений, накладываемых safe_mode'ом (вот только интересно что ему такого надо сверхъестественного). Наверно разработчики ошиблись при написании фразы "PHP not in Safe Mode (required) Not OK" с точностью до наоборот.
Вряд ли Вы сможете отключить safe_mode, если Ваш сайт лежит на обычном виртуальном хостинге и php как модуль апача стоит. Вообщем обратитесь к админу хостинга и спросите у него можно ли сейф мод вырубить или нет.
А просто закомментировать? Или там именно в одном месте проще вставить css стиль?
AlexKar, скажите, а текст ссылки на всех сайтах из одного пакета одинаковый должен быть или разный можно?
Что конкретно не работает?
Вызывать надо так: yandex_tic('ya.ru');
Вы немного не допонили как работает php. Объясняю: сначала Вы посылаете 404 заголовок (НО он ещё не отправился клиенту, т.к. вывод страницы не начался). Затем Вы посылаете заголовок Location, который неявно посылает 302 код, который затирает 404. И в итоге клиент получает в ответ 302 заголовок, а затем запрашивает новую страницу, указанную в location.
Вам, что бы добиться желаемого эффекта, надо сделать следующее: послать 404 заголовок и выдать нужную страницу (морду), а не перенаправлять на неё.
Т.е. вроде следующего:
<?php header('HTTP/1.1 404 Not Found'); print file_get_contents('index.html'); //или вот так, если страниц генерируется скриптом: print file_get_contents('http://' . $_SERVER['HTTP_HOST'] . '/index.php'); ?>
Да, и еще, сразу не увидел. У Вас ошибка в http заголовке:
header('НТТР/1.1: 200 ОК');
Двоеточие уберите, оно лишнее.
P.S.: а УРЛ сайта не покажите?
Минутку я не допонял.
Скрипт вызывается, когда сервер выдаёт 404 ошибку? Т.е. в апаче указано выдавать эту страницу (результат работы скрипта), если произошло обращение к несуществующей странице.
Или пользователь обращается к скрипту и он выдаёт документ или 404?
Уверены? Как проверяли?
P.S.: при 404 коде страница тоже выводится.
Скорей всего дело в скрипте. Ищите тараканов в нём.
Я использую смарти, т.к. всё нет времени, что бы разобраться с XSL.
Смарти, как уже писал Kolyaj, по умолчанию смарти работает по принципу модели MVC (Model View Controller). Т.е. пользователь обращается к контроллеру (php скрипт), который берёт данные из модели и скрещивает их с шаблоном (view). А потом выдаёт результат пользователю.
Но мне понравилась одна концепция, описанная в книге Д. Котерова "PHP5". Там описано как при помощи смарти реализовать компонентный подход. Отличие от MVC в следующем. Если в MVС пользователь обращается к контроллеру, то в компонентном подходе пользователь обращается к ШАБЛОНУ. Т.е. пользователь обращается к шаблону (обычный html файл, например, без php кода, но со смартивскими тэгами), который вызывает контроллер (такой вызов делается с помощью директив веб-сервера), который берёт данные из модели (или, если модель в скрипте не реализуется, то сам занимается этим).
Шаблон выглядит примерно так:
<html> <body> <h1>Новости</h1> {t_component src="Test_News_Show" name="news" num="2" file="news.txt"} {foreach from="$news" item="n"} <li><b>{$n.date}</b> {$n.text} {/foreach} {/t_component} </body> </html>
Смартивский тэг {t_component} вызывает, так сказать, php скрипт (точнее при обращении к шаблону он обрабатывается php скриптом) и в переменной $news оказывается массив с новостями.
Этот способ показался мне наиболее удобным, т.к. структура файлов более понятная особенно для малограмотных пользователей. Им не надо будет искать где хранятся шаблоны. Кроме того, если, например, пользователь захочет видоизменить каталог ссылок и сделать форму для добавления ссылки не на отдельной странице, а на каждой, то ему не надо будет копаться в php коде и выискивать куски кода, который генерирует необходимые данные для шаблона и переносить их в другие скрипты, а только потом изменять шаблон (как в случае с MVC). Ему просто надо будет открыть шаблон страницы для добавления, вырезать оттуда код:
{t_component src="Test_News_Show" name="news" num="2" file="news.txt"} {foreach from="$news" item="n"} <li><b>{$n.date}</b> {$n.text} {/foreach} {/t_component}
и перенести его в другой шаблон. И всё.
Правда шаблонизаторов, работающих по этой схеме, я особо не встречал.
Есть правда шаблонизатор templier (в основе которого лежит смарти), который и описывался в книге Котерова. Взять его можно отсюда: http://php5.dklab.ru/ -> download src. Лежит он там в папке templier. Правда я с ним ещё не разбирался.