$ _GET无效

时间:2012-08-16 19:00:38

标签: php

我无法让我的$ _GET工作。它适用于我在服务器上的其他每个站点,但不在此站点上。该网站是osCommerce,我正在运行PHP 5.

if (($HTTP_GET_VARS['image'] ==0) && ($products['products_image_lrg'] != '')) {
    //do something
};

我也试过

echo $_GET['image'] 

它仍然无效。它只是给了我未定义的索引。

网址如下所示:/blah.php?image=2

我已将页面剥离到裸露仍然无法正常工作,请参阅下面的

<?php

    echo $HTTP_GET_VARS['image'];
    echo $_GET["image"];
    echo "<br />";
?>

我明白了

Notice: Undefined variable: HTTP_GET_VARS in \popup_image.php on line 3 Notice: Undefined index: image in \popup_image.php on line 4 

我一直在做更多的挖掘,看起来像oscommerce中的一个问题,不允许它阅读

7 个答案:

答案 0 :(得分:4)

  1. 以下 应该与PHP 5.x一起使用:

    • HTTP: http://myserver/blah.php?image=2

    • PHP(blah.php?):

      if(isset($ _ GET ['image'])){      $ IDX = $ _ GET [ '图像']; //应为“2” }

  2. 我假设您正试图从“blah.php”访问“$ _GET []”。 如果没有,您需要将URL传递给您正在呼叫的页面。

  3. print_r($_GET)var_dump($_GET)是一个好主意。碰撞error_reporting(NNN)

  4. 一个更好的更好的想法是创建一个虚拟页面,phpinfo.php:

    • phpinfo.php的:

      <?php phpinfo (); ?>

    • http查询:

      http://myserver/phpinfo.php?image=2

    问:phpquery()是否在任何地方显示“图像”网址

  5. 最后,这是一个类似的案例,结果证明是PHP安装问题:

答案 1 :(得分:4)

您忘记在mod重写规则中添加QSA (query string append)标志。如果没有此标志,则在重写之前添加到您的URL的任何查询字符串都将被丢弃,以支持添加到重写规则中的新查询字符串,尽管它仍然可以在浏览器顶部的栏中看到。

答案 2 :(得分:2)

首先,尝试查看$ _GET数组的整个打印:

print_r($_GET);

答案 3 :(得分:0)

你的'形象'是档案吗?如果是,那么它应该在$_FILES而不是$_GET ...

执行print_r($_GET);print_r($_FILES);

你看到了什么?

答案 4 :(得分:0)

请检查你的.htaccess,也许有一些重写规则会破坏你的GET参数。见https://stackoverflow.com/a/6656450/216084

答案 5 :(得分:0)

这是旧的,但我偶然发现了同样的问题并找到了一个简单的解决办法。我使用的是一个简短的php标签(<?....?>)。一旦我将其更改为<?php....?>,我的$ _GET就会重新开始工作。我不知道为什么只有这个受短标签影响,但它已修复。希望这有助于其他人...

答案 6 :(得分:-1)

我总是倾向于使用类似的东西:

$image = isset($_GET['image']) ? $_GET['image'] : FALSE;