[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выполнение php из текста
Страницы: 1, 2, 3
bposter
Добрый день, подскажите, есть текст в базе данных, можно в текст как то вставить php вставку чтоб она выполнялась как php код?

_____________
Вязание xe4.ru спицами.
Сайт для тестов (подопытный №543)
Arh
Можно
Пишите код
Сохраняете в базу
htmlspecialchars($code);


а потом запускаете из базы
eval('?>'.htmlspecialchars_decode($row['value']).'<?php');


или так

ob_start ();
eval('?>'.htmlspecialchars_decode($row['value']).'<?php');
$code = ob_get_clean();


echo $code;

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Игорь_Vasinsky
тока аккуратненько используем.

а то юзеры вам в бд нанесут сюрпризов.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
bposter
Цитата (Arh @ 23.10.2013 - 11:45)
Можно
Пишите код
Сохраняете в базу
htmlspecialchars($code);


а потом запускаете из базы
eval('?>'.htmlspecialchars_decode($row['value']).'<?php');


или так

ob_start ();
eval('?>'.htmlspecialchars_decode($row['value']).'<?php');
$code = ob_get_clean();


echo $code;

Это получается весь текст с кодом через htmlspecialchars_decode($row); выводить правильно?

_____________
Вязание xe4.ru спицами.
Сайт для тестов (подопытный №543)
bposter
<?php  

/**
* Данные для подключения к базе данных
*/

$host = 'localhost';
$dbname = 'test';
$dbuser = 'root';
$dbpass = '';


/**
* Подключение к базе данных
*/

mysql_connect ($host, $dbuser, $dbpass);
$db = mysql_select_db ($dbname);
mysql_query('SET NAMES UTF8');

if($db == false)
{
echo '<h1>Нет подключения к базе данных!</h1>';
exit();
}


$result = mysql_query("SELECT * FROM `text` ");
$myrow = mysql_fetch_array($result);


$sd = $myrow['text'];

ob_start ();
eval('?>'.htmlspecialchars_decode($sd ).'<?php');
$code = ob_get_clean();



echo $code;


Цитата
Parse error: syntax error, unexpected $end in Z:\home\test.ma\www\index.php(33) : eval()'d code on line 3


Че не так?

_____________
Вязание xe4.ru спицами.
Сайт для тестов (подопытный №543)
qaz333
а ты так оставь чтобы работало, eval(htmlspecialchars_decode($sd)); нафиг там вобще '<?php' и '?>' ???
bposter
Цитата (Игорь_Vasinsky @ 23.10.2013 - 11:46)
тока аккуратненько используем.

а то юзеры вам в бд нанесут сюрпризов.

там тока я добавляю в базу

_____________
Вязание xe4.ru спицами.
Сайт для тестов (подопытный №543)
bposter
Цитата (qaz333 @ 23.10.2013 - 13:32)
а ты так оставь чтобы работало, eval(htmlspecialchars_decode($sd)); нафиг там вобще '<?php' и '?>' ???

так тоже не пашет sad.gif

_____________
Вязание xe4.ru спицами.
Сайт для тестов (подопытный №543)
Arh
$post = '<?php echo "hello";?> А тут не php';

#Пишем в базу
$sql = htmlspecialchars($post);

#Выводим из базы
ob_start ();
eval('?>'.htmlspecialchars_decode($sql).'<?php');
echo ob_get_clean();


Цитата
нафиг там вобще '<?php' и '?>'

Что бы по мимо php работал обычный текст

PS
ob_start (); не обязательно, это если ты будешь что то делать с этим кодом перед тем как вывести.

$post = '<?php echo "hello";?> А тут не php';

#Пишем в базу
$sql = htmlspecialchars($post);

#Выводим из базы
eval('?>'.htmlspecialchars_decode($sql).'<?php');


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
А для чего htmlspecialchars()?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
Цитата (twin @ 23.10.2013 - 15:49)
А для чего htmlspecialchars()?

Для успокоения души)

ну а вообще что бы можно было выполнить код, а рядом вывести исходный код.

#Показываем пример
eval('?>'.htmlspecialchars_decode($sql).'<?php');

#Показываем как он работает
echo $sql;




_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
А в том месте, где показывем, как он работает, нельзя разве?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
Цитата (twin @ 23.10.2013 - 16:15)
А в том месте, где показывем, как он работает, нельзя разве?

Можно и так, как пожелаете.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
bposter
Код
eval('?>'.htmlspecialchars_decode($myrow[0]).'<?php');


Цитата
Parse error: syntax error, unexpected $end in Z:\home\test.ma\www\index.php(31) : eval()'d code on line 5


Что ему не так? :angry:

_____________
Вязание xe4.ru спицами.
Сайт для тестов (подопытный №543)
Arh
что в $myrow[0] лежит?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.