2011-04-28 102 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注入攻击