在我的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相同的結果。
我該如何解決呢?
在我的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相同的結果。
我該如何解決呢?
使用urldecode變換值回張貼的價值。
通常情況下,你不會需要這些 - 你$_GET
和$_POST
就已經被解碼,並且將包含var1$var2
就像用戶輸入他們。
您是否嘗試過只是路過VAR1 $ VAR2和轉義值,當你明白了嗎?
我不是PHP的編碼,所以我不會現在是否可行,但我想它應該。
這是正常的 - 它應該是什麼。 $
是一個特殊字符,如果包含在URL中可以有特殊含義。所以每當您發送包含$
這個字符將被轉義值(url編碼)爲其十六進制值,所以var1$var2
會var1%24var2
。
當你的目標頁面(phpmethod.php),你寫GET['q']
的$
字符自動urldecoded,你會得到原始值var1$var2
,所以你不必擔心什麼。
,它們也逃脫其他人物包括空間(%20
),/
,:
,&
,?
等上面也0x7F
所有Unicode字符也將被轉義。
只有在您明確在數據上使用urlencode
時,才應該使用urldecode
函數;所以絕不會urldecode $_POST
和$_GET
值;他們已經解碼了,你可能會再次通過這種方式破壞你的數據。
是的,值正在被URL編碼。這通常不是一個問題。你有什麼問題? – deceze 2012-01-27 08:25:45
'%24'是你應用'urlencode'('$')時得到的。這樣做的具體問題是什麼?它是如何錯誤的結果? – mario 2012-01-27 08:26:36
php函數需要'''而不是'%24' – user896692 2012-01-27 08:27:02