1

我一直在研究这个问题几个小时。我有一个带有文本区域的表格。我使用 nicEdit 文本编辑器。它替换了 textarea 并显示了一个不错的文本编辑器,因为我希望我的用户为他们的内容添加一些样式。

我使用 codeIgniter (PHP),并使用 form_helper 创建表单。我也使用 form_validation 进行 ss-validation 和 jquery 验证进行 cs-validation

当我单击提交时,表单提交似乎很好。我这样说是因为我使用 fiddler(一个 http 记录器)并且我看到我的文本带有由文本编辑器包裹的正确 html 标签。

但是当我在视图中获得@_pots 数据时,不知何故,某些标签已被删除。

fiddler 如何跟踪 HTTP 调用和提交的表单数据(似乎正确)

Hello SO, <br><br>
<span style="font-weight: bold;">the following line should be bold</span><br><br>
<span style="font-style: italic;">the following line should be italic</span><br><br>
<span style="text-decoration: underline;">the following line should be underlined</span><br>

我的 html 在我的视图和我的@_post 数据的 print_r 结果中的外观

Hello SO,<br><br>
<span bold;"="">the following line should be bold</span><br><br>
<span italic;"="">the following line should be italic</span><br><br>
<span underline;"="">the following line should be underlined</span><br>

看起来不知何故,当我取回数据时,它会删除 style="font-weight

$_post 对特殊字符有什么作用吗?!?!有人遇到过类似的问题吗?非常感谢所有答复。

4

1 回答 1

0

您需要从 Codeigniter 扩展 CI_Security 类并注释/删除/修改此行:

/*
if(in_array($_SERVER['REQUEST_URI'],$allowed))
        {
            $evil_attributes = array('on\w*', 'xmlns');
        }
        else
        {
            $evil_attributes = array('on\w*', 'style', 'xmlns');
        }
*/
于 2012-05-17T21:42:26.397 回答