警告:非常过时的问题有一个糟糕的主意.存储代码,无论是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.
我建议不要在数据库中存储PHP. 数据库用于数据,而不是代码.
如果您需要有条件运行的代码,请将其放在.php文件中并用于include()执行它.
如果您需要动态内容,可以将其放在数据库中,然后将其放入数据库中echo.无需使用eval().
不要忘记逃避输出htmlentities().