如何从数据库执行PHP?

xad*_*ict 0 php database

警告:非常过时的问题有一个糟糕的主意.存储代码,无论是PHP,JavaScript还是HTML,都不是一个好主意.留在这里仅用于文档目的

我有一个尴尬的问题.

通常,当将东西放入数据库时​​,它将以它的方式保存.所以,如果保存的东西是:

<?php echo "hi!"; ?>
Run Code Online (Sandbox Code Playgroud)

这将只输出'hi!' 什么时候叫.
但是,就我而言,我将纯文本保存到数据库中.我没有做任何验证来检查这些代码,我已经关闭了魔术引号以防止这些东西被转义.

当从分贝获取数据,并把它的网页内(ofcourse如果满载所以PHP的应执行的页面之前)此示出了在源代码为是?PHP的标签,因而不可见(在Safari至少)因为它是一个未知的输出标签.

数据块由一种'Joomla-ish'模板代码组成.HTML标签,Style(css),Javascript块和php都可以在那里.像css,js等东西可以工作,但服务器端代码却没有.

关于如何使这个工作或为什么它不工作的任何想法?数据库在mySQL和MyISAM中作为存储引擎.我保存它的领域是一个长篇大论.我正在使用php5(在w3c网站上使用魔术引号表示不是很好的做法,因为它会在php6中被删除,因为除了解决一些问题之外它还会带来很多安全风险).

我尝试过使用eval(),但是有一个小问题.eval()函数假设这是php,但通常它不会.它主要是带有一些php块的html.

Bil*_*win 6

我建议不要在数据库中存储PHP. 数据库用于数据,而不是代码.

如果您需要有条件运行的代码,请将其放在.php文件中并用于include()执行它.

如果您需要动态内容,可以将其放在数据库中,然后将其放入数据库中echo.无需使用eval().

不要忘记逃避输出htmlentities().

  • 确实:**警告团队!极度危险!**.将PHP模板代码放入数据库是非常不寻常的,除非你有一个非常好的理由,并且非常小心你的字符串转义,这很可能最终导致服务器受损. (2认同)