Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как запустить функцию в шаблоне? [2]
Форумы портала PHP.SU » » Вопросы новичков » Как запустить функцию в шаблоне?

Страниц (2): « 1 [2]
 

16. OrmaJever - 25 Сентября, 2014 - 12:02:47 - перейти к сообщению
android пишет:
Если все разрешенные функции проверять на правильность то нет В этом случае риск минимален

мы видимо не совсем друг друга понимаем. Если шаблоны от сторонних разработчиков не проверять то они могут делать что угодно, и функции тут не причём. они могут вывести а страницу не то что нужно или же наоборот просто угробить весь шаблон. А как насчёт xss? Плохому человеку не нужен доступ к php, он просто наишет в шаблоне js и будет воровать куки.
android пишет:
да и если человек накосячит отображаться это будет только на его сайте

То есть если с php кодом накосячить то сломается весь интернет?
17. android - 25 Сентября, 2014 - 12:55:32 - перейти к сообщению
OrmaJever господи!!!
Объясню еще раз, слушайте внимательно:

Есть система управления сайтами, в ней может сделать себе сайт любой желающий, он создает сайт, прикрепляет домен. От нас панель управления сайтом и его размещение (в автоматическом порядке) в ПУ запрещено любое наличие php кода. Если владелец сайта внедрит себе xss, сломает дизайн - это его право.

Надеюсь теперь я расставил все по своим местам Улыбка
18. OrmaJever - 25 Сентября, 2014 - 13:25:53 - перейти к сообщению
ааа вот теперь ясно, типа ucoz.ru. Ну в таком случае нужно много парсить и проверять всё до последнего. Но тут опять же вопрос, зачем эти функции нужно без основного функционала? Если доступа к бд и серверным ресурсам нету, то зачем может пригодиться substr? Статический текст резать? По-моему разработчикам шаблонов проще уже js использовать.
(Добавление)
Напишите примерный список функций, а я вам скажу если ли смысл это делать.
19. DelphinPRO - 25 Сентября, 2014 - 15:02:25 - перейти к сообщению
вы шаблоны через интерпретатор php пропускаете что ли? Или все же делаете что-то вроде
PHP:
скопировать код в буфер обмена
  1. $html = str_replace('{title}', 'Заголовок', $html);
  2. ...
  3. echo $html;

Во втором случае - пофиг, если в шаблоне будет функция, она просто будет выведена как текст.

Поэтому и спрашивал, как у вас там устроен шаблонизатор.
(Добавление)
Добавлю.
Посмотрите smarty. Если в его шаблонах просто вызвать php-функцию - это будет просто текст, а чтобы она сработала, нужно обернуть вызов в {php}{/php} (или как-то так, не помню)
сделайте свой синтаксис для вызова функций, и при парсинге проверяйте, допустима ли функция. я об этом писал ранее.
20. android - 25 Сентября, 2014 - 15:48:32 - перейти к сообщению
OrmaJever обрезание текста это так, пример в основном. Будут использоваться собственные функции

Лучше если можете поясните про кэширование, на каком этапе нужно кэшировать и что куда выводить?
(Добавление)
DelphinPRO и если знаете то подскажите как регулярку сделать так что бы пропускало только такие комбинации:

$name_var
! $name_var
$name_var1 != $name_var2
$name_var1 > $name_var2
$name_var1 < $name_var

а так же группирование ! $name_var or $num = 1

Просто немного не понятно как сделаны условные операторы в ucoz, там вроде стандартный if else endif но пропускает только свои переменные и пару проверок по типу как я выше написал


Что вы думаете об этом?
Мне кажется нужно брать содержимое
и проверять это по шаблону как то... но такой вариант будет нести в себе большой массив с проверочными регулярками Нахмурился

Может есть какой-то способ запретить использование функций внутри условного оператора?
21. OrmaJever - 25 Сентября, 2014 - 17:07:17 - перейти к сообщению
Короче говоря это не шаблонизатор получается, а грубо говоря нужно писать свой парсер и компилятор шаблонов.
22. RickMan - 25 Сентября, 2014 - 17:11:59 - перейти к сообщению
А если использовать существующие? Например twig...
23. android - 25 Сентября, 2014 - 17:33:45 - перейти к сообщению
OrmaJever да скорее всего
RickMan масса ненужных вещей
24. tato - 26 Сентября, 2014 - 01:18:03 - перейти к сообщению

android пишет:
RickMan масса ненужных вещей

Tак говорят либо senior'ы либо junior'ы, по Вашим коментариям видно, что вы не senior.
Twig и так маленький, приведите пример, что в нем лишнего?
25. android - 26 Сентября, 2014 - 23:11:23 - перейти к сообщению
Tato, если бы вы прочитали от начала до конца тему, то увидели бы что мне от шаблонизатора нужно только : переменные в шаблоне, условные операторы if else endif

А вот блоки, инклюбы, запуск кода пхп и од мне совершенно не нужно!
26. android - 27 Сентября, 2014 - 12:41:52 - перейти к сообщению
И да, у него глупый не измеряемый обратчик ошибок

 

Powered by ExBB FM 1.0 RC1