警告:非常过时的问题与一个可怕的想法。存储代码,无论是PHP,JavaScript还是HTML,都不是一个好主意。在此仅留作文档用途如何从数据库执行php?
我有点尴尬的问题。
通常情况下,将东西放在数据库中时,将以原样保存。 因此,如果保存的东西是:
<?php echo "hi!"; ?>
这将只是作为输出“你好!”当被调用时。
但是,在我的情况下,我将纯文本保存到数据库中。我没有进行任何验证来检查这些代码,并且我已经关闭了魔术引号以防止这些内容被转义。
当从数据库中获取数据并将数据放入页面(如果完全加载,所以PHP应该执行时,页面之前的课程),这在源代码中显示为?php标记,因此不可见(至少在Safari上),因为它是一个不知名的输出标签。数据块由一种'Joomla-ish'模板代码组成。 HTML标签,样式(CSS),JavaScript块和PHP都可以在那里。像CSS,JS等东西的作品,但服务器端代码不。
任何想法如何让这个工作或为什么它不工作?数据库位于mySQL和MyISAM中作为存储引擎。我保存的领域是一个长文。我使用的是php5(在w3c网站上声明使用魔术引号并不是很好的做法,因为它会在php6中被删除,因为除了解决一些问题外,它会带来很多安全风险)。
我试过使用eval(),但有一个小问题。 eval()函数asumes这是php,但通常不会。它将主要是HTML和一些PHP块。
我在想那件事。 – Samuel 2009-08-22 19:56:30
确实:**警告团队!极度危险!**。将PHP模板代码放在数据库中是非常不寻常的,除非你有一个出人意料的理由来做这件事,并且非常小心你的字符串转义,这很有可能最终导致服务器被入侵。 – bobince 2009-08-22 20:31:49