我正在为我的一个项目使用NicEdit所见即所得编辑器。
http://nicedit.com
我的问题是NicEdit想让我张贴任何代码(超文本标记语言,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());对此有什么解决方案吗?提前谢谢。
发布于 2013-06-02 00:48:14
您可以在Javascript中获取编辑器的内容,并手动向服务器发送ajax请求,而不是通过submit按钮提交表单。
var editorText = nicEditors.findEditor("area1").getContent();
var data = {
area1: editorText
};
$.ajax({
type: "POST",
url: "/API/tutorials",
data: data,
complete: function(responseRaw){
}
});发布于 2013-06-01 23:40:00
这可能是因为mysqli试图转义字符。一种解决方案是创建您自己的验证规则,并通过该规则传递文本。或者只是不转义字符串,但这是一个糟糕的想法。
我非常确定这是什么,但我一直使用PDO,所以我不是很好地使用mysqli。
发布于 2013-06-05 13:39:04
在查询字符串之前,请尝试转义。为了获得额外的MySQL注入保护,无论如何都需要这样做。
$ptext = $mysqli->real_escape_string($ptext);此外,还在查询语法中发现了一个错误,该错误是由附加引号引起的。将“$ptext”更改为“$ptext”,代码应该可以正常工作。
如果这不起作用,请阅读nicInstance.saveContent()的用法。让一个JS scipt在提交后执行它。这会将文本区与nicEdit字段中的实际内容同步。
http://wiki.nicedit.com/w/page/521/Javascript%20API
https://stackoverflow.com/questions/16873776
复制相似问题