2014-12-03 176 views
0

我有一個通過post提交的textarea。插入之前我這樣做:爲SQL插入保留換行符 - PHP

mysql_real_escape_string($notes) 

而且我與輸出檢索的記錄:

stripslashes($notes) 

然而,當我做符刪除行,我得到一個巨大的段落。

使用換行符存儲textarea並輸出檢索到的數據的正確方法是什麼?

不知道它是否重要,但我插入到Mssql數據庫。

+0

看看輸出的來源。在HTML中,瀏覽器不會顯示換行符。如果要在html中顯示帶有分隔符的文本,則可以使用'nl2br'函數來插入'
'標籤來代替換行符。 – GolezTrol 2014-12-03 14:43:52

+5

難道是換行符仍然存在,但在瀏覽器中不可見,但僅在源代碼中顯示?簡單的修正:'nl2br(stripslashes($ notes))' – RichardBernards 2014-12-03 14:43:53

+0

嗯,我一定是在事情的插入方面做錯了什麼,因爲我以前的研究建議nl2br(stripslashes($ notes))應該可以工作,但事實並非如此。 – 2014-12-03 14:49:48

回答

0

stripslashes肯定不是輸出到html的方式,爲了逃避不可信的輸入,請使用htmlspecialchars

最好的辦法是利用white-space CSS規則:

<div style="white-space: pre-wrap"><?php echo htmlspecialchars($notes) ?></div> 

如果你看到在輸出多餘的斜線,你必須在數據庫錯誤的數據。解決這個問題,而不是輸出。