2011-04-28 109 views
0

我有下面的代碼,這對我不起作用。我曾經有$ HTTP_GET_VARS而不是$ _GET,但後來更新到PHP 5,現在事情已經破裂。有什麼想法,我在做什麼錯在這裏?

<?php 
$_GET['SubCat']; 
$_GET['Location']; 
$db = mysql_connect("localhost", "xxxx", "xxxx"); 
mysql_select_db("outdoors",$db); 
if ($Location) { 
$result = mysql_query("SELECT ID, Longitude, URL, SiteName, Description FROM hunting WHERE SubCategory = '$SubCat' AND Location = '$Location' AND Status <> 'HIDDEN' ORDER BY SiteName",$db); 
} else { 
$result = mysql_query("SELECT ID, Longitude, URL, SiteName, Description FROM hunting WHERE SubCategory = '$SubCat' AND Status <> 'HIDDEN' ORDER BY SiteName",$db); 
<More unrelated stuff after this> 

變量將通過這樣的鏈接進行傳遞:

hunting.php?SubCat=Hunting+Locations 
+0

您沒有存儲來自get的值,並且$ location的位置我沒有找到該變量? – Vijay 2011-04-28 07:17:37

+0

位置保留給未來的功能。 – GoNorthWest 2011-04-28 07:20:01

+0

不是$ _GET存儲在變量中的值,我將它傳遞給像'SubCat'?我認爲這是它的工作方式。 – GoNorthWest 2011-04-28 07:20:36

回答

6

關於第一個問題:

您必須將其存儲在任何變量,這樣

$SubCat = $_GET['SubCat']; 
$Location = $_GET['Location']; 

或直接引用它。

關於第二個問題:

在一個簡單的方法來改變幾十個文件,這兩條線在我的一個服務器上的任何想法?

使用全局搜索功能來覆蓋整個目錄。你可以在任何受歡迎的編輯中找到它。搜索$_GET['SubCat'];並將其替換爲$SubCat = $_GET['SubCat'];。只要確保它是一個獨特的名字。

在一個側面說明:

您DONOT使用任何類型的檢查或輸入逃逸,直接把它放在你的SQL語句。這是非常危險的。請在使用PDO或至少一個轉義函數,以避免SQL注入攻擊