0

我一直在建立一个网站,用户可以在其中提交日志和概要。这通过一个然后使用 $_POST 提交,并使用 SQL 查询将其放入 SQL 表中来工作。出于某种原因,仅在 MOZILLA FIREFOX 中(我已经在 chrome、IE、safari 甚至在 ipad(再次是 Safari)上进行了测试),当它到达 SQL 表时,它充满了随机换行符。当在站点的不同部分查看提交时,无论有什么换行符,所以肯定是Mozilla的提交步骤有问题。

那么Mozilla的问题是什么?我希望能提供任何帮助以防止这种情况发生,以下是提交的内容(删节以包括相关部分):

用户在这种文本区域中输入值:

<form id="submitform" name="submitform" action="submit.php" onsubmit="return validateSubmitForm(event)" method="post">

    // some code

        <textarea style="height:300px;width:800px;font-family:Arial;border:1px solid #a6a6a6;
                         background-color:#fff9eb;resize:none" 
                  wrap="hard" size="1500" placeholder="1500 character limit..." maxlength="1500"
                  id="submitsummary" name="submitsummary" type="text"></textarea>

    // some code

</form>

然后,在表单作为 $_POST 提交后,我基本上使用以下 SQL 查询将其输入到数据表中:

"INSERT INTO table (userid, header, synopsis) 
VALUES(1, 1, " . htmlspecialchars($_POST["submitsummary"]) . ")"

关于为什么只有 Mozilla 存在问题的任何想法?另外,关于如何解决它的任何想法?非常感激!

4

2 回答 2

1

wrap="hard"已知 Firefox 存在问题。删除它并检查随机换行符是否消失。

还要cols and rows attributes为文本框设置 Firefox 也使用它来确定正确的换行。

于 2013-01-24T22:49:15.047 回答
1

I suspect your issue is wrap="hard". This requires you to use the cols attribute and it inserts newlines at the wrap points of text in the textarea.

Removing the wrap or setting wrap="soft" will result in the submitted data only having newlines where the user hit enter (or if the user pasted, only where the pasted data had newlines).

于 2013-01-24T22:51:50.567 回答