2010-07-16 79 views
0

我有一個簡單的flex客戶端從php腳本請求一些數據。我使用URLLoader將參數傳遞給php並等待響應。由於參數的值可以包含任何字符,因此我在flex側使用了escape函數將值傳遞給php腳本。我發現flex escape並不適用於所有的字符,php的等效urlencode在相同的數據上有不同的結果。在Flex和PHP中的URL編碼

我的問題是如何安全地傳遞一串字符(任何)到PHP腳本。我得到的一個建議是使用POST而不是GET或基於64編碼字符串,但base64本身不包含url安全字符......例如+在PHP中轉換爲空白。

+0

您是否使用過[escape function](http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/package.html#escape%28%29)?哪些字符沒有正確轉義 - 您可以發佈代碼嗎? – Amarghosh 2010-07-16 05:08:55

+0

是的,我確實使用過你提到的escape()函數。它只是一個函數調用,如下所示: var request:URLRequest = new URLRequest(「http://myserver.com/sc.php?name=」+ escape(parameter)); 然後我使用URLLoader發送請求。我有+的麻煩,因爲它已被轉換爲PHP腳本中的空白空間。而逃生甚至不支持+字符的編碼。 – user393456 2010-07-16 05:31:46

回答

1

使用encodeURIComponent來編碼URL上的字符串。它會在變量中編碼+和其他字符。

此函數假定它正在處理一個URI組件它將該特殊分隔符字符(; /?@ & = + $,#)作爲常規文本應當被編碼。