Textarea用wysiwyg编辑器不能提交给MySQL吗?

时间:2014-07-03 22:25:06

标签: javascript php jquery html mysql

我正在尝试使用富文本编辑器格式化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页面格式的数据。

任何帮助将不胜感激。

提前致谢。

1 个答案:

答案 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,我明白了,但是如果你正在记录那么它可能是必填字段。