【问题标题】:Replaced $HTTP_GET_VARS with $_GET, but not working将 $HTTP_GET_VARS 替换为 $_GET,但不起作用
【发布时间】:2011-04-28 07:13:39
【问题描述】:

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

【问题讨论】:

  • 你没有存储 get 的值,$location 我没有找到那个变量??
  • 位置是为将来的功能保留的。
  • $_GET 的值不是存储在我传递的变量中吗,比如“SubCat”?我认为这就是它的工作方式。
  • 其实你的代码应该是这样的 $subcat = $_GET['SubCat']; $location = $_GET['location'];
  • 不错!那成功了!非常感谢!关于在我的服务器上同时更改几十个文件的这两行的简单方法有什么想法吗?

标签: php php4


【解决方案1】:

第一个问题:

您必须将它存储在任何变量中,例如这样

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

或者直接参考。

第二个问题:

有什么简单的方法可以在我的服务器上同时更改几十个文件的这两行吗?

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

附带说明:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-04
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    相关资源
    最近更新 更多