用CakePHP处理数据库中存储的PHP代码

用CakePHP处理数据库中存储的PHP代码,cakephp,Cakephp,几小时前我开始使用php。为了开始学习,我决定制作一个专注于代码片段管理的小型web应用程序,这很简单。所有的CRUD操作都很有效。问题是: 用户将在应用程序中添加任何类型的代码。在除PHP之外的任何编程语言中添加代码段时,它都可以工作。当我使用Model::find()方法时,PHP代码(来自存储在数据库中的代码片段)被替换为空字符串“”,我无法在视图中显示它 为什么会发生这种情况?我该如何解决 感谢阅读。您可能只是在浏览器中看不到输出,因为浏览器试图将PHP标记呈现为HTML。您需要将代码转

几小时前我开始使用php。为了开始学习,我决定制作一个专注于代码片段管理的小型web应用程序,这很简单。所有的CRUD操作都很有效。问题是:

用户将在应用程序中添加任何类型的代码。在除PHP之外的任何编程语言中添加代码段时,它都可以工作。当我使用Model::find()方法时,PHP代码(来自存储在数据库中的代码片段)被替换为空字符串“”,我无法在视图中显示它

为什么会发生这种情况?我该如何解决


感谢阅读。

您可能只是在浏览器中看不到输出,因为浏览器试图将PHP
标记呈现为HTML。您需要将代码转义以输出到浏览器:

<pre><code><?php echo htmlentities($model['Model']['code']); ?></code></pre>

你能说得更具体些吗?如果不了解所涉及的代码,就很难调试它。你能提供给你带来麻烦的确切代码的链接/列表吗?它是在进入数据库时丢失的还是没有被呈现的?存储后,您可以使用phpmyadmin在表中看到它吗?是的,它正确地存储在数据库中。只有当Model::find()方法返回它时,它才会“消失”。我看到一个数组,其中应该有一个类似于“”的字符串,只有一个“”(空白字符串);是的,你说得对。问题解决了!我决定使用htmlspecialchars()而不是htmlentities(),它的攻击性较小,并且只会清理“&”、“”、“”、“”字符。