bposter
23.10.2013 - 15:38
Добрый день, подскажите, есть текст в базе данных, можно в текст как то вставить
php вставку чтоб она выполнялась как
php код?
_____________
Вязание
xe4.ru спицами.
Сайт для тестов
(подопытный №543)
Можно
Пишите код
Сохраняете в базу
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
23.10.2013 - 15:46
тока аккуратненько используем.
а то юзеры вам в бд нанесут сюрпризов.
_____________
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
23.10.2013 - 15:49
Цитата (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
23.10.2013 - 16:14
<?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
23.10.2013 - 17:32
а ты так оставь чтобы работало, eval(htmlspecialchars_decode($sd)); нафиг там вобще '<?php' и '?>' ???
bposter
23.10.2013 - 19:07
Цитата (Игорь_Vasinsky @ 23.10.2013 - 11:46) |
тока аккуратненько используем.
а то юзеры вам в бд нанесут сюрпризов. |
там тока я добавляю в базу
_____________
Вязание
xe4.ru спицами.
Сайт для тестов
(подопытный №543)
$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
А для чего htmlspecialchars()?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 23.10.2013 - 15:49) |
А для чего htmlspecialchars()? |
Для успокоения души)
ну а вообще что бы можно было выполнить код, а рядом вывести исходный код.
eval('?>'.htmlspecialchars_decode($sql).'<?php');
echo $sql;
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
А в том месте, где показывем, как он работает, нельзя разве?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 23.10.2013 - 16:15) |
А в том месте, где показывем, как он работает, нельзя разве? |
Можно и так, как пожелаете.
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
bposter
24.10.2013 - 15:55
Код
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)
что в $myrow[0] лежит?
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2