Защитить шаблон

Тема в разделе "PHP", создана пользователем Raccoon, 20 авг 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Raccoon

    Raccoon

    Регистр.:
    31 июл 2007
    Сообщения:
    172
    Симпатии:
    9
    Добрый день!

    Есть простенький шаблонизатор взятый из Joomla:

    PHP:
    public function make_html($file$data) {

    $template $this->read_html($file);

    foreach(
    $data as $key=>$val) {
    $template str_replace('{'.$key.'}'$val$template);
    }

    $template preg_replace("/{lang:([^}]*)}/ie""\\1"$template);

    return 
    $template;

    }
    Так, вот хотелось бы в каждом шаблоне разместить такую штуку:

    PHP:
    defined('EXEC') or die;
    Сам-то код работает при прямом обращении к файлу, но почему-то код воспринимается буквально, и попадает в HTML код сгенерированный страницы.

    Что с ним можно сделать, чтобы в общий HTML поток он не выводился?

    Спасибо.
     
  2. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    PHP:
    if (!defined('EXEC')) exit;
     
  3. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    по хорошему это одна из самых простых видов зажиты которые долж быть применины

    использовать нужно везде, а вот объявлять только в 1 фаиле... у меня 2 таких переменных 1 админ, одна общая...
    ----
    остальные просто константы)
     
  4. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    Функцию read_html покажи, скорей всего у тебя там шаблон грузится из file_get_contents'а, в своем шаблонизаторе я решил эту проблему таким способом
    PHP:
    $tpl "index.php";
    ob_start();
    include(
    "dir/".$tpl);
    $this->result ob_get_contents();
    ob_end_clean();
    Все теги вставленные в шаблон вида {переменная} работают, но и php код тоже выполняется
     
Статус темы:
Закрыта.