2012-02-22 110 views
0

我寫了一個腳本,當你輸入一個文本框時,它將打開一個隱藏的iframe到一個.php文件中,並在$ _GET中寫入到文本框中。但是,例如,如果我在其中鍵入:'< 3',則會發生這種情況。

Image 1

PHP determins了$ _GET [s]是一片空白!用戶不能把一個簡單的符號,而不會得到這個錯誤。

另一個問題是引號,如果我寫任何引號,它會結束整個SRC屬性。

Image 2

我應該怎麼辦?我應該用JavaScript還是PHP做些什麼?請告訴我!

謝謝!

+0

您沒有向我們顯示任何代碼。一般來說,在從PHP返回用戶提交的數據之前,您應該在其上調用'htmlspecialchars'。 – Jon 2012-02-22 08:26:41

+0

你試過編碼文本嗎? – spicavigo 2012-02-22 08:26:48

回答

0

它看起來像您的iframe是由JavaScript生成的,所以所有包含PHP函數的答案都是無用的。數據甚至沒有達到PHP,所以任何PHP函數希望如何幫助?

相反,請嘗試使用urlencode from PHPJS,因爲沒有一個JS的函數能夠真正處理所有情況,並且這使得您可以輕鬆使用PHP的urldecode來檢索數據。

1

使用urlencode將輸入的字符串編碼爲有效URL以供URL使用。

也是非常謹慎當允許用戶輸入到您的PHP腳本通過URL。確保你做了適當的檢查/消毒,特別是涉及數據庫操作時。

0

您需要將該字符編碼爲&lt;

0

關於雙引號,你可以使用這個技巧。

attr='Your string can "contain double quotes"' 

attr="Your string can 'contain double quotes'" 

但同時指定在URL variable=values,你並不需要用戶雙引號,您可以直接分配的值。

url="test.php?var1=123&var2=345" 

其餘約發送< 3個字符,你可以在javascript & PHP取其適用檢查URL編碼!