2014-09-01 60 views
0

如果我嘗試從以#開頭的表單提交一段文本 - 或使用GET,我不會收到任何數據。任何想法發生了什麼?

網址:{}嗒嗒/test.php?test1=foo &測試2 =#杆

整個PHP代碼:

echo $_REQUEST['test1']; 
echo '<br/>'; 
echo $_REQUEST['test2']; 
echo '<br/>'; 

var_dump($_GET); 

給出了這樣的瀏覽器:

FOO

array(2){[「test1」] => string(3)「foo」[「test2」] => string(0)「」}

如果我在#例前寫了更多的文字, 「foo #bar」然後我得到「foo」

+0

您必須在發佈之前對您的網址進行編碼 – RajivRisi 2014-09-01 15:06:40

+0

我剛剛意識到我的所有查詢實際上都是GET。 POST確實有效。我認爲這是一個有用的問題,因爲我已經編寫了PHP多年,從未注意到這一點! – 2014-09-01 15:12:16

回答

2

URL中的#字符有特殊含義。它指示片段標識符的開始。

如果您想將其作爲數據包含,則需要對其進行百分比編碼(如%23)。