用$ _GET替换了$ HTTP_GET_VARS,但没有用

时间:2011-04-28 07:13:39

标签: php php4

我有以下代码,这对我不起作用。我曾经有$ 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

1 个答案:

答案 0 :(得分:6)

关于您的第一个问题:

您必须将其存储在任何变量中,例如

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

或直接参考。

关于第二个问题:

  

有什么想法可以轻松地在我的服务器上的几十个文件中更改这两行文件吗?

使用全局搜索功能覆盖整个目录。你可以在任何一个流行的编辑器中找到它。搜索$_GET['SubCat'];并将其替换为$SubCat = $_GET['SubCat'];。只要确保它是一个独特的名称。

旁注:

您不使用任何类型检查或输入转义并直接将其放入您的sql语句中。非常危险。在传递之前请使用PDO或至少一个转义函数以避免SQL注入攻击