2017-07-30 52 views
-1

我正在創建一個評論系統,用戶可以在其中發佈評論,這些評論也可以包含基本HTML,包括代碼。像這樣:如何清理PHP中發佈的用戶評論

<pre><code class="language-php"><?php 
echo 'Test'; 
?></code></pre> 

問題是我無法清理這一個服務器端,因爲評論中的PHP代碼實際上會在我的服務器上運行。在提交表單之前,我嘗試過使用JavaScript:

$("#comment").val() = $("#comment").val().replace("<?", "&lt;?").replace("?>", "?&gt;"); 

但是,這會導致語法錯誤。

有什麼辦法讓我安全地發佈包含PHP的用戶評論?

+3

*」註釋中的PHP代碼實際上會在我的服務器上運行「* - 然後你做了一些非常可怕的錯誤 –

+0

我不完全確定代碼將在我的服務器上運行。這只是一個猜測,因爲服務器實際上將它解析爲PHP而不是代碼片段。 :) –

+3

你永遠不應該信任javascript來清理輸入。用戶可以輕鬆禁用JavaScript。 – PressingOnAlways

回答

0

使用jQuery來設置輸入元素的新值,則需要使用此語法

​​

使你的JavaScript代碼更改爲:

$("#comment").val($("#comment").val().replace("<?", "&lt;?").replace("?>", "?&gt;")); 

讀:http://api.jquery.com/val/

相關問題