2014-11-17 3 views
-2

У меня есть код, который запускает html-код из базы данных, чтобы не создавать новый файл для каждой страницы, которую я мог бы сделать, проблема в том, что если страница содержит php код, который он не запускает, и я уверен, что вы можете сделать это с помощью eval, но у него есть риски для безопасности, поэтому я пытался найти некоторые альтернативы. При необходимости я могу вставить код. Ive получил php-скрипт, который получает данные из таблицы и основной php-скрипт, который получает форматирование в HTML и PHP для данных, однако он просто запускает PHP-код, как если бы это были строки из базы данных.
Вот изображение кода Thats предназначены для запуска из PHP скрипта:
http://i.imgur.com/qx0rn7q.png Вот код PHP в этой строке enter image description here И это основной сценарий, который предназначен, чтобы запустить его: enter image description hereЗапуск PHP-кода из базы данных

+4

Как эта база данных заполнена кодом PHP? Это похоже на риск безопасности (как насчет [инъекции кода] (https://en.wikipedia.org/wiki/Code_injection)?). Покажите пример - например. часть базы данных и код, который ее оценивает! –

+0

http://i.imgur.com/eNamtjd.png, я не могу думать о каком-либо другом способе этого делать, так как прямо сейчас код не работает, поскольку он просто печатает PHP-код в виде строки. О, и http://i.imgur.com/fHs5ko6.png - это код, который предназначен для его запуска, но его просто закомментировал прямо сейчас, поскольку у меня только что код работает на основном сайте. – Batzz

+1

Вы должны ** отредактировать свой вопрос **, чтобы улучшить его (поместите код в вопрос, с четырьмя пробелами перед каждой строкой, а не на внешних сайтах). Я не вижу содержимое базы данных (покажите соответствующие строки, содержащие код PHP). –

ответ

0

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

Как, вы можете сделать funcs.php затем внутри него сделать:

function user_page($user_id){ 
    ?> [Create user page here] <?php 
} 

Тогда внутри любого другого файла просто сделать:

include 'funcs.php'; 
if(isset($_GET['username']) === true){ 
    user_page($_GET['username']); 
} else { 
    //if not loading user page then do something else 
} 

EDIT

Хорошо, я только что видел ваш снимок экрана. Чтобы сделать что-то подобное, функция будет хорошей.

Ex:

function print_data($info1,$info2,$info3,$info4){ 
echo("<center>$info1</center><br>$info2<br>$info3<br>$info4"); 
} 

затем просто вызов функции с $ строки [] информации у вас есть в вашем скриншоте.

Как так:

print_data($row['email'],$row['name'],$row['username'],$row['ip_addr']); 
0

этот вопрос должен быть добавлен к какой-то «делают это неправильно» список, если честно.

но, возвращаясь к вашему вопросу, у вас есть 3 варианта, все они более или менее болезненны, и только один из них прав.

  • , чтобы сделать это правильно: перепишите свой двигатель или возьмите некоторые cms/рамки. хранить текстовые данные в базе данных, скрипты/шаблоны на диске
  • eval! (который вы не хотите)
  • разбор. (это будет очень тяжело и медленно и совершенно безумно)
Смежные вопросы