从mysql数据库表加载php脚本

时间:2013-01-28 20:38:07

标签: php mysql

我有一个mysql数据库,在其中一个字段中我有一堆普通的html和一个php脚本。当我从数据库中拉出并显示字段时,php不会呈现为php,而是呈现为html。想知道是否可以将php脚本放在mysql数据库字段中,然后将它们渲染为php,当它被拉到网页上时,如果是这样,我该怎么做。

3 个答案:

答案 0 :(得分:3)

我在使用eval函数之前已经这样做了。但是,eval是危险的,因为如果恶意代码被注入,可能会造成严重的伤害,所以请谨慎行事。

我作为替代方法所做的是将类名和参数存储在数据库中,然后生成给定的类以生成html和php。

答案 1 :(得分:1)

您要找的是eval() ...因为当您从数据库中提取代码时,它会以字符串形式存储。

但要注意! ......

  

eval()语言构造非常危险,因为它允许执行任意PHP代码。 因此不鼓励使用

直接从PHP docs

如果您将用户输入带入数据库字段,请不要使用eval(),因为用户可以将恶意脚本上传到您的数据库中。

实际上为什么需要在数据库中存储PHP?这听起来很糟糕,我强烈建议你找另一种方法。查看Mustache或搜索PHP模板引擎。

如果您必须首先使用eval()阅读相关内容,请确保您了解安全风险。

答案 2 :(得分:1)

首先执行此操作不是一个好主意 - 出于安全性,设计和其他考虑因素。

执行此操作的常用方法称为模板

数据库中的HTML代码将包含占位符,例如

<h1>Title of this page: {$title}</h1>
<p>Contents: {$contents}</p>
...

然后在从数据库中提取这些占位符后,您将使用PHP填充这些占位符。还有完整的模板引擎可以完成这项工作,例如: SmartyTwig。 (后者更轻一点)