2012-09-07 19 views
2

我正在開發一個網站,有一個在線留言板應用,PHP - 在線留言板接受一個PHP標籤或HTML標記的文本不是代碼

我想要做的是如何接受,如果用戶或客人在插入PHP標記爲他/她的消息或喊叫就像願意,你可以在圖像上看到..

我使用mysql_real_escape_string爲客人姓名和消息..

我想PHP來治療將其作爲文本顯示爲文本而不是標籤或代碼。

當我進入這樣的喊話時,沒有消息出現,就像(客人:下午3點34分)的呼喊沒有消息顯示,當我檢查我的數據庫,看看是否插入喊話。沒有數據插入消息列我tb_shoutbox的..

我試圖在Facebook上聊天我進入一個PHP標籤和HTML標記,並接受這種消息的..怎麼做..

一些幫助,請..

shoutbox

回答

2

您需要將某些字符(如「<」)轉換爲HTML實體。 htmlentities函數可以像這樣使用:

echo htmlentities($ guest_comment,ENT_QUOTES,'utf-8');

+0

我應該使用mysql_real_escape_string嗎? – Peace

+0

當您插入數據庫時​​使用mysql_real_escape_string。在輸出數據時使用htmlentities。 mysql_real_escape_string - >數據庫 - > htmlentities - >輸出 –

1

要建立在韋恩屈的完全正確的答案,回答關於他的回答您的評論:

mysql_real_escape_string使用時要插入變量的數據轉換成使用MySQL查詢MySQL數據庫,而不打破查詢變量的內容。

這可以防止人們在你的留言箱上做SQL injections

htmlentities另一方面用於當你想阻止人們打破你的PHP腳本(這可能是非常不愉快的)。它將你給它的字符串編碼成純html。這就像它告訴瀏覽器這個字符串,不管它在哪裏,都應該顯示給用戶。沒有代碼解析完成。

所以要回答你的問題:你的代碼中的某個地方有一條PHP數據線,用於迴應數據庫/文件中的消息。您需要修改該行,以便首先使用htmlentities對消息進行編碼,然後將其顯示爲使用