Выполнение PHP в тексте из БД

1. Сергей (08.08.2013 / 00:20)
Здравствуйте! Собственно такая ситуация... Имеется сомописный движок, содержимое страницы выводиться из БД. Запросом получается содержимое страницы и echo'ом выводится. Возникла потребность вставить переменную в отображаемый текст хранимый в БД. Приемы '..',{} не прокатывают, все показывается как html. Может это вообще не возможно выполнить команду php в этом тексте!? Подскажите. Появилась только мысль, сделать ключевое слово и заменить его на переменную перед выводом.

2. Erika (08.08.2013 / 01:02)
1. Voland, сейчас, только свой хрустальный шар достану. Разширение файла программы php? И кусок кода в студию

3. Domino (08.08.2013 / 02:11)
Может eval для твоего условия подойдёт.

4. marti91 (08.08.2013 / 04:05)
Привет! Как уже выше было сказано - код в студию!

5. юЮЮфюв (08.08.2013 / 07:12)
1, Так это же бред. Если я правильно все понял.

6. Кевин Митник (08.08.2013 / 08:01)
все правильно подумал. добавляй ключевые слова типа {title} и т.д, а потом перед выводом прогоняй str_replace(). Решение примитивно, но если такая специфическая архитектура - то и так прокатит

7. Петр (08.08.2013 / 08:01)
Да уж, хранить по сути php код в БД - это необычно. Самое простое, наверное,
 <?php eval('echo "'.addcslashes($str, "\n\"").'";'); ?> 

Добавлено через 01:57 сек.
6. Кевин Митник_HHTeam, может проще взять уже готовый шаблонизатор?

8. Сергей (08.08.2013 / 08:06)
файл index.php include'ит шаблон style.php, в style.php есть переменная $content с содержимым страницы и вставлена через echo' татаа '.$content.' татата '; $content собирается из файла модуля страницы, который подключается через include в index.php - например pages.php. В pages.php собирается переменная $content, по типу .=, тут происходит запрос в БД, получается данные и добавляются к переменной $content.
На этой страницы у меня реализована форма, в ней должна быть поля со следующим

Добавлено через 00:45 сек.
<input name="hash" type="hidden" value="'.check_form.'">

Добавлено через 02:09 сек.
за eval спасибо, попробую сейчас

9. Алексей (08.08.2013 / 11:54)
А может перестаните быдлокодить, и бд использовать для конкретных целей, а не хранить там разметку страниц и php-сценарии)

10. юЮЮфюв (08.08.2013 / 12:00)
8, Работать это может быть и будет, но всё же, задумайтесь о переработке архитектуры.

11. JustZero (08.08.2013 / 12:42)
php коду место в .php файлах

12. Сергей (08.08.2013 / 19:49)
Спасибо, тем кто помог, а не язвил! Это понятно что php коду место в php-файлах. Ну ситуация возникла что человеку нужно чтобы он мог редактировать все страницы, включая и форму для отправки данных. А оставлять форму без защиты не хорошо, а защита вся на php, вот так вот и получилось

13. Кевин Митник (09.08.2013 / 00:58)
7. Im-ieee, не целесообразно использовать тут готовый. Тот же смарти, если не ошибаюсь, весит аж целый мегабайт.

14. shilo (09.08.2013 / 08:20)
Да блин, сделай простенький шаблонизатор.
пусть все темплейты (куски html) страницы лежат в файликах.
В нужном месте {CUSTOM_TEXT} меняешь на нужное содержание и всё.

15. Станислав (09.08.2013 / 14:14)
12. Voland, так пусть файлы редактирует.

16. Кевин Митник (09.08.2013 / 15:42)
15. SNELS, тоже мысль такая пришла. Только файлы без разширений в специальном закритом хранилище, с deny from all. А потом инклудить.

URL: https://visavi.net/topics/38659