2012-01-27 105 views
-1

在我的HTML文件,我給通過GET值的PHP。值如下:'var1$var2'

在我的網址,顯示了以下內容:

/phpmethod.php?q=var1%24var2 

我在ASCII表中查找$,並發現其編號爲24

我也加入

試了一下
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 

到HTML,但it's相同的結果。

我該如何解決呢?

+0

是的,值正在被URL編碼。這通常不是一個問題。你有什麼問題? – deceze 2012-01-27 08:25:45

+0

'%24'是你應用'urlencode'('$')時得到的。這樣做的具體問題是什麼?它是如何錯誤的結果? – mario 2012-01-27 08:26:36

+0

php函數需要'''而不是'%24' – user896692 2012-01-27 08:27:02

回答

2

使用urldecode變換值回張貼的價值。

通常情況下,你不會需要這些 - 你$_GET$_POST就已經被解碼,並且將包含var1$var2就像用戶輸入他們。

0

您是否嘗試過只是路過VAR1 $ VAR2和轉義值,當你明白了嗎?

我不是PHP的編碼,所以我不會現在是否可行,但我想它應該。

1

這是正常的 - 它應該是什麼。 $是一個特殊字符,如果包含在URL中可以有特殊含義。所以每當您發送包含$這個字符將被轉義值(url編碼)爲其十六進制值,所以var1$var2var1%24var2

當你的目標頁面(phpmethod.php),你寫GET['q']$字符自動urldecoded,你會得到原始值var1$var2,所以你不必擔心什麼。

,它們也逃脫其他人物包括空間(%20),/:&?等上面也0x7F所有Unicode字符也將被轉義。

只有在您明確在數據上使用urlencode時,才應該使用urldecode函數;所以絕不會urldecode $_POST$_GET值;他們已經解碼了,你可能會再次通過這種方式破壞你的數據。