Лексеич
Московский калмык
Разделение HTML и PHP кода. Сомнения по eval.
Всем здравствуйте.
Я написал простенький скрипт форума, безо всяких заморочек и т.п. Только просмотр, добавление и удаление записей. Изначально задался целью разделить php и html. То есть сделать такой код, к которому можно было бы написать и прилепить шаблон по своему вкусу. Различные шаблонизаторы отсек. Захотелось самому реализовать. Просто захотелось. Впринципе, написанное на данный момент, отлично работает. Основное затруднение было в следующем: как реализовать цикл в шаблоне для списка тем, форумов и сообщений. Поискал ответ на вопрос в коде форума phpBB. Смысл построения кода понял так:
1. Есть некоторые специфические тэги в шаблоне.
2. Подменяем эти тэги php-вставками. Например цикл (т.н. парсинг шаблона, как я понял).
3. Загоняем всё это в eval().
Всё работает. Я очень доволен и горд собой. Был... пока в PHPClub в поиске не набрал "eval". Насколько понял, слишком опасно с ней играться.
Но потом подумал и пришел к следующим выводам:
1. Если парсится шаблон, добавленный администратором сайта. Мне кажется тут ничего страшного. не будет же хозяин сам себя ломать? Логично.
2. Запрещается опция добавления пользователями своих темплэйтов, дабы исключить внедрение вредного кода. Собственно, данную опцию я и не рассматривал.
Скажите пожалуйста, знатоки, что я забыл? Какие подводные камни еще могу встретить при работе с eval'ом?
Всем здравствуйте.
Я написал простенький скрипт форума, безо всяких заморочек и т.п. Только просмотр, добавление и удаление записей. Изначально задался целью разделить php и html. То есть сделать такой код, к которому можно было бы написать и прилепить шаблон по своему вкусу. Различные шаблонизаторы отсек. Захотелось самому реализовать. Просто захотелось. Впринципе, написанное на данный момент, отлично работает. Основное затруднение было в следующем: как реализовать цикл в шаблоне для списка тем, форумов и сообщений. Поискал ответ на вопрос в коде форума phpBB. Смысл построения кода понял так:
1. Есть некоторые специфические тэги в шаблоне.
2. Подменяем эти тэги php-вставками. Например цикл (т.н. парсинг шаблона, как я понял).
3. Загоняем всё это в eval().
Всё работает. Я очень доволен и горд собой. Был... пока в PHPClub в поиске не набрал "eval". Насколько понял, слишком опасно с ней играться.
Но потом подумал и пришел к следующим выводам:
1. Если парсится шаблон, добавленный администратором сайта. Мне кажется тут ничего страшного. не будет же хозяин сам себя ломать? Логично.
2. Запрещается опция добавления пользователями своих темплэйтов, дабы исключить внедрение вредного кода. Собственно, данную опцию я и не рассматривал.
Скажите пожалуйста, знатоки, что я забыл? Какие подводные камни еще могу встретить при работе с eval'ом?
не рассматриваю я эту опцию. не дорос еще.