2014-03-25 44 views
0

理念如何插入所見即所得編輯的文本到數據庫

我已經在我的項目的一個論壇,我試圖實現所見即所得的編輯器來發布問題和答案。實際上這個項目已經完成,現在我正在努力將NicEdit wysiwyg編輯器應用於所有必需的textareas。我使用現有的下面的行向發佈數據的數據庫插入:

$post_body = $_POST['post_body']; 
$post_body = nl2br(htmlspecialchars($post_body)); 
$post_body = mysqli_real_escape_string($db_conx,$post_body); 

問題

當我插入發佈數據我得到以下輸出:

OUTPUT

結論

我想知道如何將wysiwyg編輯的內容插入到數據庫中。除此之外,請給我建議一些很好的wysiwyg插件,這些插件很容易嵌入到我的項目中。目前,我使用NicEdit,它很容易嵌入,但功能有限。

回答

0

你爲什麼不與它解碼:htmlspecialchars_decode()呼應前?

這可能會解決您的問題。

編輯:

你可以做strip_tags(),只允許少數標記標籤。

如:

// Allow <p> and <a> echo strip_tags($text, '<p><a>');

這樣,就可以剝奪危險標籤,如<script>

+0

爲什麼你要將某些東西編碼爲HTML,然後纔將它放入數據庫,然後纔將它解碼爲文本?最好刪除編碼步驟,然後再解碼。 – Quentin

+0

但是這會讓我的網站容易出現跨腳本攻擊ryt? – Gopal1216

+0

那麼,他真正想要的是輸出存儲在DB中的wysiwyg文本.. –

0

不要這樣做:

$post_body = nl2br(htmlspecialchars($post_body)); 

那你是怎麼創建純文本的HTML表示。你要求人們提交HTML,而不是純文本。

(這樣做,不過,實現基於白名單,HTML知道XSS過濾器,如HTML過濾)

+0

如果我不這樣做,我覺得我的網站將是脆弱的腳本atacks。我對麼? – Gopal1216

+0

我把你引回答案的最後一段。 – Quentin

+0

以及SQL注入。我對嗎? – Gopal1216