2011-11-20 66 views
-2

我在URL中傳遞加密字符串,然後使用php $ _GET來檢索它,但我遇到一些問題,請讓我先寫URL以使其更加容易感

http://localhost/marketplace/test.php?sortid=Cd2&V0reSzN$NBh^tjcF!%3CfsAAhIU%28%3C 

,如果你會發現我有這樣,當我呼應了$ _GET它符號標誌後打破值ex

echo $_GET['sortid']; 

,結果字符串中間的符號跡象我得到的是Cd2,並且在&符號之後沒有讀取任何東西,這個問題MI能弄清楚的是,在使用$ _GET

PHP將讀取的一切,後「&」標誌不同的參數,但我對如何解決由URL創建這個

感謝

+5

http://php.net/urlencode – hakre

+3

這不是**問題**。你應該明白爲什麼PHP(而不僅僅是)有這種行爲。 –

回答

0

不知道,用%26替換&符號,它會起作用。 或者,再次用base64編碼您的編碼字符串,然後您沒有&符號。

+0

感謝belgther –

1

發生這種情況的原因是&符號在查詢字符串中有特殊含義。你正在經歷的行爲是完全正常的和預期的。

如果你想傳遞包含特殊字符的GET參數,你應該使用urlencode或者像base64編碼之類的東西對它們進行正確的編碼。

+0

感謝兄弟我現在正確地編碼em ...我確定&符號有一些特殊的含義,試圖找到一種方式,但我相信我應該採取更好的方法,然後解決這個問題 –

+0

不客氣。如果您發現問題的答案有幫助,請注意並/或接受它們。 –