2012-02-26 16 views
1

我一直在試圖解決一些使用本指南的api實現谷歌地圖的問題http://code.google.com/intl/no-no/apis/圖/文章/ phpsqlajax_v3.html。php處理/在php文件中生成標記文件的xml文件的變量

林停留在這一部分:在另一個文檔或服務器基本名稱的處理相同的文檔這樣在與可變組修改查詢:

*(這是PHP文件生成該XML文件: http://gmaps-samples-v3.googlecode.com/svn/trunk/articles/phpsqlajax/phpsqlajax_genxml3.php)*

$mapid = str_replace(".php","",basename($_SERVER['REQUEST_URI'])); 
$query = "SELECT * FROM markers WHERE type='".$mapid."'"; 

這不工作...

而且它不工作如果我在顯示地圖的主webpage.php文件中設置變量[R ...它的工作原理,如果我在同一個文件(xmlgenerate.php)這樣設置變量:

$mapid = "mymap"; 
$query = "SELECT * FROM markers WHERE type='".$mapid."'"; 

希望有人能告訴我什麼即時做錯了什麼。

編輯:繼承人鏈接到活文件btw。 xmlgenerate =>http://www.pinnedmap.com/mapdata.php和mappage =>http://www.pinnedmap.com/test.php NB。一個有效的查詢示例是:wonderdersoftheworld

從test.php傳遞變量將是理想的。

+0

你有SQL注入的可靠性在這裏.. – MMM 2012-02-27 14:39:00

+0

你能否也請詳細解釋出了什麼問題。 – MMM 2012-02-27 14:40:33

+0

編輯了一下這個問題。希望現在更清楚..? Thx通知abt脆弱性btw! – Algatella 2012-02-27 14:45:13

回答

0

我不明白你在這裏做什麼:

$mapid = str_replace(".php","",basename($_SERVER['REQUEST_URI'])); 

相反試試這個:

$mapid = mysql_real_escape_string($_GET['mapid']); 

(該mysql_real_escape_string部分防止SQL注入)

現在只是要求你的文件像file.php?mapid=something,一切都應該工作...

+0

當我更改該代碼並輸入file.php?mapid = mymapid在地址字段中並沒有改變任何東西。 – Algatella 2012-02-27 18:33:18

+0

嗯,應該。如果你發佈你的代碼,我可能會幫助你... – MMM 2012-02-28 10:03:43