PHP – 使用 mysqli_real_escape_string 在 textarea 產生的 \r\n
因為addslashes 可用變形技巧繞過來SQL Injection
可是使用 mysql_real_escape_string 會產生下面的問題,例如以下textarea表單:
<textarea name="desc"></textarea>
當我們將 $desc = mysql_real_escape_string($_POST["desc"]) 存入資料庫後,在資料庫中可能會多出 "\\r\\n" 這個換行,而addslashes 沒有這樣的情況。原因是 mysql_real_escape_string 這個函數會把 POST 過來的內容中非真正的換行 "<br>" 加上\r\n 這個隱藏的東西,所以看是要置換掉 \r\n 再mysql_real_escape_string 還是就給他存進去,反正在textarea 中,這個 \r\n是會被忽略的。
至於 input type="text" 就不會有這個問題。
節錄自http://note.tc.edu.tw/624.html