Выполнение 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