1

我希望将某些代码作为模板存储在数据库表中,但我不确定它们是否会产生问题。我一直在不同的帖子中阅读来自不同人的混合信息,我只是不高兴我对这个主题很清楚。

我已经发现您不能真正将 PHP 回显/打印到网页中。显然,您可以回显 HTML 字符串,但是当您尝试使用 PHP 代码执行此操作时会变得很尴尬。我设法做到这一点的唯一方法是通过 eval 这在大多数情况下显然很糟糕......所以我正在使用另一种方法来实现模板(即编写一个 php 文件用作包含文件)

我要问的主要问题是:将 PHP 代码字符串(包括 SQL 语句)存储在表中的文本类型字段(mediumtext、longtext 等)中真的有问题吗?这些 SQL 语句是否可以执行诸如执行实际操作之类的操作,或者它们只是保留为文本字符串?

澄清一下,我存储代码字符串的原因是因为它们是 Web 管理员希望将它们分配到页面的特定区域 (div) 时使用的模板。

4

2 回答 2

4

使用SMARTY模板。这将巧妙地解决您的问题,您无需在数据库中存储任何内容。它还将使您的 PHP 代码与您的 HTML 完全分离。

于 2013-02-01T19:03:11.360 回答
-2

不要这样做。如果您的数据库曾经遭到入侵并且有人注入了恶意 PHP,它可能会被执行。您应该将模板存储为文件并在需要时调用它们。

而且您实际上可以回显/打印PHP。你会使用eval.

eval()语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

于 2013-02-01T18:59:55.037 回答