2014-08-30 77 views
-1

我想如下獲取使用$ _GET兩個參數時,我得到 「錯誤的請求」 錯誤經過一個字,這樣當正常工作:

http://www.mywebsite.com/index.php?data=OneWord&key=AlsoOneWord 

但它提供了一個「404錯誤」試圖通過一個完整的字符串時:

http://www.mywebsite.com/index.php?data=This is a set of data&key=This is the key! 
// This doesn't work 

如何解決?因爲它是我必須實現的!

+0

請問您可以告訴我您的網站做了什麼? – M98 2014-08-30 11:00:29

+1

嘗試.urlencode() – 2014-08-30 11:03:01

+0

[urlencode()](http://php.net/manual/en/function.urlencode.php)您的參數 – 2014-08-30 11:03:08

回答

0

「錯誤請求」(通常爲400狀態碼)告訴您,您(客戶端)向無法理解的服務器發送了輸入。所以你的腳本沒有錯,但是你傳遞給它的東西沒有錯。

正如您的問題下面的評論指出的那樣,可能是這種情況,因爲您發送格式錯誤的請求字符串到您的服務器。查詢參數(後在URL中的 「?」 一切)必須對其進行編碼的,這樣反而

http://www.mywebsite.com/index.php?data=This is a set of data&key=This is the key! 
// This doesn't work 

你應該嘗試

http://www.mywebsite.com/index.php?data=This%20is%20a%20set%20of%20data&key=This%20is%20the%20key! 
// This should work 

一個在線的URLEncoder /解碼器見this tool。 PHP有一個內置函數:urlencode將空格編碼爲'+'或rawurlencode將空格編碼爲'%20'(服從RFC3986

+0

空格也可以編碼爲'+'。然後它變成'... index.php?data = This + is + a + set + of + data ...' – 2014-08-30 12:23:00

+0

當我使用'url-encoded'參數時,它會被轉換成普通參數(解碼)在瀏覽器中,再次發生404錯誤! – 2014-08-31 18:56:39

+0

我真的不知道你在說什麼。 – Hirnhamster 2014-08-31 20:32:11