我無法從數據庫中獲取數據並在HTML頁面textarea中回顯出現問題。Textareas,New Lines和nl2br的問題
這是用於將數據進入數據庫的代碼:
$_SESSION['content'] = mysqli_real_escape_string($link, strip_tags($_POST['content'],'<a>'));
這條簡單的HTML標籤除了在數據庫鏈接和商店。如果你看看數據庫,換行符是不可見的,所以我假設它們是\ n和\ r。
如果我輸入到一個文本:
This should be a
New line
數據庫存儲此爲:
This should be a<br>
New line
當呼應出到一個文本,這是錢包顯示:
This should be a \r\n\r\nNew line
我敢肯定,我失去了一些非常簡單的東西,非常感謝任何幫助。
UPDATE:
如果我刪除mysqli_real_escape_string,換行符將被保留,並完美地工作,我必須犧牲安全嗎?
解決:
mysqli_real_escape_string引起的問題,不要回聲出已經有這個應用的變量。從數據庫插入,刪除等時只能使用mysqli_real_escape_string,而不能在之前,絕對不能在之後;)
謝謝大家!
嘗試使用'$ _ POST [ '內容'] =的stripslashes($ _ POST [ '內容'])'在發佈行之前。然而,我不確定這將有助於... http://php.net/manual/en/function.stripslashes.php –
當然,這隻會剝離新的換行符,使\ n - > n? – Cristian
@ user964145不是如果在數據庫中它們被存儲爲\\\ n(它轉義斜線) – Prisoner