Генерация страницы из базы

199
07 декабря 2017, 01:48

Решаю такую задачу в написании своего фреймворка и cms: из базы данных подгружаются небольшие фрагменты html кода, а также php-скрипты.

В базе запись выглядит так, например:

<div style="font-size: 18px;"><? echo "тест";?></div>

При выводе, пишу так подключение к базе и вывод данных:

$where = 'id = 1';    
$Current_page  = $BDConnect->select('pages', Array('*'), $where);    
foreach ($Current_page as $html) echo $html['text_page'];

В результате на странице пишет тектом текст:

<div><? echo "тест";</div>

Как сделать, чтобы это был не текст, а часть html-кода?

Answer 1

Вам нужно echo заменить на eval(). И, так как у Вас это HTML код, то обрамить его тегами

foreach ($Current_page as $html)
  eval('?> ' . $html['text_page']);

но помните, что функция eval() очень опасна из-за возможности исполнить любой код

Из документации

Предостережение Использование eval() может быть очень опасно, поскольку позволяет исполнить произвольный код. Использование данной функции не рекомендуется. Если вы полностью убеждены, что нет иного способа воспроизведения необходимого функционала, обратите особое внимание на исключения обработки таким образом данных, вводимых пользователем, без специальной обработки и валидации.

READ ALSO
Помощь в доработке функционала сайта Wordpress

Помощь в доработке функционала сайта Wordpress

Есть готовый сайт для заказа печати книг, сделан на Wordpress WoocommerceЗагрузка макетов для печати происходит через плагин "N-Media File Upload and Manager" в формате...

187
Почему PHP высылаем сразу два JSON масива?

Почему PHP высылаем сразу два JSON масива?

Когда я шлю запрос с JSON параметром на PHP скрипт то он почему-то возврасщает мне и старый и новый, в PHP сгенерированый масивКто может подсказать...

203