как правильно вставлять суб-шаблоны?

Alexos

Новичок
как правильно вставлять суб-шаблоны?

Есть ещё вопрос..
блин не могу сообразить..
Допустим есть шаблон template.html:
<html>
<title><?=$title?></title>
<body>
<?=$text?>
<br>
<?=$form?>
</body>
<html>

А это типа вывод:
<?php
$title = "Это заголовок";
$text = "Это текст";
include "template.html";
?>

Я хочу в <?=$form?> использовать содержимое другого файла form.htm (как-бы суб-шаблон)

Когда я считываю в переменную $form = fread(fopen(form.htm, "r"), filesize(form.htm));
то новые переменные внутри файла form.htm естественно выводятся как есть.. т.е. значения им не присваиваются, а выводится плэйнтекстом.. допустим внутри формы выводится <?=htmlspecialchars($_POST['name'],ENT_QUOTES)?>.. т.е. как php не воспринимается..
Как это исправить?
include не покатит, поскольку он сразу выведет файл form.htm в брюзер (не в том месте), а мне надо внутри основного шаблона..

Вообщем как включать в основной шаблон субшаблоны?
 

Frol

Новичок
<html>
<title><?=$title?></title>
<body>
<?=$text?>
<br>
<? include $form; ?>
</body>
<html>

PHP:
<?php
$title = "Это заголовок";
$text = "Это текст";
$form = 'blabla.php';
include "template.html";
?>
 

Alexos

Новичок
c eval пробовал.. тоже не получается.. ошибку парса выдает почему то..
 

Фанат

oncle terrible
Команда форума
eval ему НАВЕРНОЕ НЕ нужен.

Alexos, просто не забывай, то РНР - это и есть шаблонный движок.
и в нем для включения субшаблонов придуумана функция include
а еще есть foreach и if
и никаких евалов.

и еще.
файлам надо давать расширение сообразно их типу.
и не надо пхп файлам давать расширение хтмл
 

Alexos

Новичок
2Фанат
и не надо пхп файлам давать расширение хтмл
когда инклюдишь - это побарабану.. я проверял..

Инклуд - это не то! Я ж говорю мне надо в основной шаблон вставить ещё один.. и тоже взятый из файла

2Frol
Т.е. ты предлагаешь мне в template.html вывести название файла? :)
 

Demiurg

Guest
>когда инклюдишь - это побарабану.. я проверял..
поподробнее об этом, пожалуйста.
 

Фанат

oncle terrible
Команда форума
Alexos, я тебе пишу не для того, чтобы ты рассказывал мне результаты своих экспериментов, а для того, чтобы ты выполнял мои указания.
все ясно?
 

Alexos

Новичок
Frol
ты не понял..
короче объясняю.. в идеале я хочу чтоб в шаблонах присутствовали только переменные.. ну и где нужно какие-нить несложные управляющие конструкции.. никакий функций, ничего более.
А потом как это (<? include $form; ?>) смотриться с т.з. безопастности? весело.. передавай по ссылке $form в этот файл и делай с доменом чё хошь..
 

Фанат

oncle terrible
Команда форума
в идеале я хочу чтоб в шаблонах присутствовали только переменные
это невозможно по определению.

это все равно, что хотеть, чтобы машина ездила только по прямой. тогда конструкция машины сильно упростится.

Но при этом тебе придется ломом ее поворачивать рукаи на поворотах.
поверь мне - это тяжело и неудобно.

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

Alexos

Новичок
программы надо писать нормальные, тоглдда и по ссылке ничего передать нельзя будет.
Т.е. ты считаешь что если поместить на сайте php-файл c таким содержимым:
<html>
<title><?=$title?></title>
<body>
<?=$text?>
<br>
<? include $form; ?>
</body>
<html>

то ничего страшного в этом нет?
 

Фанат

oncle terrible
Команда форума
при регистер глобалс = офф - ничего.
при аллов урл фопен = офф - ничего.
при твоем расширении хтмл - ничего.

а что?
 

Alexos

Новичок
я не привык работать при регистер глобалс = офф.. неудобно как-то.. громоздко.. хотя может я и не прав - может пора отключать и перестраиваться :)
при аллов урл фопен = офф - на это я потить не могу.. это мне нужно..
С третьим надо разобраться.. пока не готов ответить.. никогда ничего не инклюдил :)
 

sergo_stavropol

Guest
по-моему уж ничего неудобней регистер_глобалс = Он нет. Особенно когда смотришь горы чужого кода и не понимаешь, какая переменная сессионная, какая гетом, какая постом и т.д...
 

Фанат

oncle terrible
Команда форума
Alexos, твои оправдания меня не волнуют.
программы надо писать нормальные, тоглдда и по ссылке ничего передать нельзя будет.
Не хочешь - дело твое.

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

Alexos

Новичок
Фанат
ты никак не можешь понять, что я не собираюсь ни перед кем оправдываться.. я здесь для другого.. в процессе диалога возникают мысли, я их высказываю.. или может молчать прикажете? Мои мысли могут быть неправильными, если б я был уверен в их правильности, я б на форум не пошёл.. Меня интересуют мысли правильные, поэтому я здесь.. Если тебя напрягает отвечать, не отвечай.. пусть ответит кто-нить другой..
Вот эта мысль кажется мне интересной:
в частности, никто тебя не заставляет файлы, к которым не требуется прямой доступ, в этом доступе оставлять
поэтому, если тебе не составит труда не делать это в виде одолжения, мне бы хотелось поинтересоваться у тебя и выяснить этот вопрос по-подробнее.
Каким образом можно сделать так чтоб эти файлы можно было бы включать в скрипт, однако запретить к ним прямой доступ?
 

Фанат

oncle terrible
Команда форума
затруднит.
весь смысл заключен в этих словах.
не хочешь, чтобы обращались - убери из места, куда обратиться могут.
или тебе конкретный каталог назвать?
извини, но даром тебепатии не владею, чтобы видеть чужие сервера н расстоянии
 
Сверху