我正在尝试使用富文本编辑器格式化textarea中的一些文本。
但是,每次我将编辑器连接到我的textarea时,textarea都不会将它的数据提交给MySQL数据库,并且最少坐下来是令人沮丧的。
PHP代码:
if (isset($_POST['answer'])) {
$id = mysqli_real_escape_string($db_conx, $_POST['id']);
$answer = mysqli_real_escape_string($db_conx, $_POST['answer']);
$stmt = mysqli_prepare(
$db_conx,
"INSERT INTO forum_answer(answer)VALUES(?)"
);
//after validation, of course
mysqli_stmt_bind_param($stmt, "s", $answer);
mysqli_stmt_execute($stmt);
if (mysqli_affected_rows($db_conx))
{
mysqli_stmt_close($stmt);//<-- CLEAN UP AFTER YOURSELF!
//update was successful
}
}
HTML:
<form name="form1" method="post" action="mypage.php">
<textarea class="rte-zone" name="answer" cols="45" rows="3" id="answer"></textarea>
</form>
我正在使用的富文本编辑器:THIS IS THE RICH TEXT EDITOR
我的PHP代码在没有富文本编辑器的情况下工作正常,它会将textarea数据存储到MySQL数据库中,但是只要我将它连接到文本编辑器就会停止工作。
我需要使用文本编辑器的主要原因是在将textarea文本输入MySQL数据库之前对其进行格式化,以便我可以使用其他HTML页面格式的数据。
任何帮助将不胜感激。
提前致谢。
答案 0 :(得分:0)
我可能会离开这里,但我认为富文本是问题:它会丢弃标记代码并破坏文本(id和/或答案)。在示例中,您尝试以粗体或其他标记输入“lor Ipsum data ect ...”,这些标记将呈现:(取决于丰富的txt编辑器的类型).....
<b>lor Ipsum data</b> or <strong>lor Ipsum data </strong>
根据富文本编辑器(来自rows = 3),还有可能有2个暗示的下一行字符 / n 或“ br ” )。
<b> and </b> or the /n or <br>
由于特殊字符,可能会导致问题。
我的想法是,如果“答案”不需要格式化(存储在数据库中,坚持使用纯文本,那么如果需要,可以在html或其他文本中重新格式化该文本,如果是这样的话。< / p>
referance --- php real escape string
如果我没有记错,除非您编写mySQL li 特殊字符,否则MySql Li会查看过滤或拒绝某些可以解析为可被视为sql注入的标记的字符项。
我还注意到您提供 ID 但没有代码来处理该代码并插入。
"INSERT INTO forum_answer(answer)VALUES(?)"
数据库中的ID怎么样,如果它是唯一ID,我明白了,但是如果你正在记录那么它可能是必填字段。