2011-11-26 82 views
1

我正在使用google可視化api來製作一個情節,然後使用事件處理來獲取點擊該情節時的一些信息上。

當我點擊的項目,我打開一個新的窗口,以下網址這是應該顯示來自一個叫做articles.php腳本結果

http://..../articles.php?word=nature&datetime=11-4-2011-8

articles.php與

開始
$word = $_GET['word']; 
$datetime = $_GET['datetime']; 

當我用var_dump調試如下:

var_dump($word); 
var_dump($datetime); 

我得到string(6) "nature" string(11) "11-4-2011-8",腳本的其餘部分工作。

不過,我遇到的問題是,如果這個詞是格式如下:

word = "#someword"

然後我仍然看到以下網址

http://...../articles.php?word=#nature&datetime=11-7-2011-5

但腳本在articles.php不起作用。在使用

var_dump($word); 
var_dump($datetime); 

我看到以下內容:

 
string(0) "" NULL 

我不明白爲什麼$_GET['word']$_GET['datetime]不再工作,搶在URL傳送的字和日期的字包含「#」作爲第一個字符。任何關於正在發生的事情的指針以及我如何解決這個問題?

謝謝!

+2

默認情況下,#標記不屬於查詢字符串(?) – supertopi

+0

的所有url的片段部分#(#包含的)之後的所有內容都不會發送到您的服務器。這是一個瀏覽器的東西afaik – malletjo

回答

4

對於要用作get參數值的#符號,它必須是URL編碼的。 #符號用於URL中以表示文檔中的指定錨點或ID,並且不會解析爲_GET陣列。

+0

偉大的,謝謝,這是非常有用的! – msohail

2

#字符表示URL fragment的開頭。如果將數據發送到服務器,則該數據將不會按照與普通$_GET參數相同的方式進行解碼。

URL中的文字#必須編碼爲%23才能正常工作。所以你的網址是http://...../articles.php?word=%23nature&datetime=11-7-2011-5。然後var_dump($word);將顯示string(7) "#nature"

相關問題