0

我在我的一个项目中使用 NicEdit WYSIWYG 编辑器。

http://nicedit.com

我遇到的问题是 NicEdit 想让我将任何代码(HTML、CSS、PHP 等)发布到 mysql 数据库。其他都保存在数据库中。此外,我在 NicEdit 工具面板中找不到任何“代码”按钮。

这是HTML代码

<form action="submit" enctype="multipart/form-data" method="post" >


    <textarea name="area1" id="area1" cols=120></textarea>

    <button type="submit" class="btns" id="btns">Submi</button>
</form>

PHP 代码

  $ptext = isset($_POST['area1'])?$_POST['area1']:""

  $mysqli->query("INSERT INTO tutorials(ptxt) VALUES ('$ptext'')") or die (mysqli_error());

有什么解决办法吗?提前致谢。

4

3 回答 3

1

您可以在 Javascript 中获取编辑器的内容并手动向服务器发送 ajax 请求,而不是通过提交按钮提交表单。

var editorText = nicEditors.findEditor("area1").getContent();

var data = {
    area1: editorText
};

$.ajax({
    type: "POST",
    url: "/API/tutorials",
    data: data,
    complete: function(responseRaw){
    }
});
于 2013-06-01T16:48:13.593 回答
0

这可能是因为 mysqli 试图转义字符。一个解决方案是创建您自己的验证规则并通过它传递文本。或者只是不逃避字符串,但这是一个糟糕的主意。

我很确定这就是它的本质,但我一直使用 PDO,所以我对 mysqli 不太熟悉。

于 2013-06-01T15:40:00.320 回答
0

在查询字符串之前尝试转义。无论如何都需要进行额外的 MySQL 注入保护。

$ptext = $mysqli->real_escape_string($ptext);

此外,在您的查询语法中发现了由附加引号引起的错误。将 '$ptext'' 更改为 '$ptext' 并且代码应该可以正常工作。

如果这不起作用,请阅读 [nicInstance].saveContent() 的使用。在提交之前让 JS scipt 在提交时执行它。这会将 textarea 与 nicEdit 字段中的实际内容同步。

http://wiki.nicedit.com/w/page/521/Javascript%20API

于 2013-06-05T05:39:04.423 回答