2016-04-08 30 views
0

合作伙伴的付款系統正在調用我的一頁來確認交易。 它發送GET參數,其中一個是重複的:相同的密鑰,不同的值。

像這樣:

?(othersparams)&REFERENCE=test1&REFERENCE=test2 

(FYI我對這些PARAMS沒有控制)

我只需要第一個,到現在它總是與$_GET['REFERENCE']

工作從昨天開始我們有付款問題,我看到這是解析的第二個值,而不是第一個。

我的知識沒有服務器變更。

當你給出重複的GET參數鍵時,你能告訴我更多關於PHP的行爲嗎? 什麼能解釋這種變化?

非常感謝。

+0

你不能依靠環境的具體怪癖來得到這個工作。如果你想要一致的行爲,你將需要使用'$ _SERVER [「QUERY_STRING」]' – apokryfos

+0

手動解析查詢參數。原因可能是分支系統中的腳本錯誤。但是,您可以通過解析$ _SERVER ['QUERY_STRING']'來避免這個問題,它會給你所有發送的參數。 – mitkosoft

回答

1

正如K-Balo說,
查詢字符串被解析成關聯數組$ _GET,所以當有重複鍵只值的最後一個版本出現在地圖上。但是,您可以訪問原始的$ _SERVER ['QUERY_STRING']並自行解析它。

您也可以參考這個帖子:
Can I have multiple $_GET with the same key, different values?

+0

希望你明白! (不要猶豫,再問我一次) –

+0

到目前爲止,只有第一個版本被解析......這是從昨天開始,第二個版本纔是首選。 (php 5.6)。我不明白這個變化 – FLX

+0

你可以嘗試改變你的控制面板中的PHP版本。這應該工作 –