【发布时间】:2014-12-01 11:56:36
【问题描述】:
我目前在 CodeIniter 中使用内联 CKEditor 4.4.4。当我使用CKEditor将数据插入数据库并接收回来时,如何保持段落格式?
这是我的带有 CKEditor 插件和配置的 JavaScript 代码:
<script>
CKEDITOR.inline('skill', {
toolbar: [
{ name: 'document', groups: [ 'mode', 'document', 'doctools' ], items: [ 'Source', '-', 'Save','Preview', 'Print' ] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ], items: [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo','Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak','Styles', 'Format', 'Font', 'FontSize' ] },
'/',
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ], items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript', '-', 'RemoveFormat','NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', '-', 'BidiLtr', 'BidiRtl'] },
]
});
</script>
这里是 HTML 表单
<li>
<span class="cvspan">Description:</span><?php echo form_textarea('we_dis',set_value('skill',$property->skill));?>
</li>
当我将文本提交到数据库并获得没有格式的结果时,文本显示为图像 2
【问题讨论】:
-
我猜在插入/更新到数据库之前或在编辑器中显示时,所有格式都会被转义。
-
你能比较这两种情况的html吗?
-
@Vahan Vardanyan,你是对的,因为 Codeigniter 在将数据插入数据库之前清理了字符串,我使用了这个规则:
'rules' => 'trim|required|xss_clean'和关于我使用的 HTML 标签尝试使用简单的 div 并且没有添加其他 HTML 标签到它但它仍然不适合我但是如果我不使用 Codeigniter 来清理字符串我的网站将不安全所以我现在该怎么做 -
我认为您可以配置此规则的应用方式。当 javascript 未转义时可能会出现安全问题,而不是简单的 HTML 标记。
-
您可以编写自己的验证方法。看here。
标签: javascript html codeigniter ckeditor django-ckeditor