7

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

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

我也试过

echo $_GET['image'] 

它仍然无法正常工作。它只是给了我未定义的索引。

URL 如下所示:/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 中的一个问题,不允许它读取

4

7 回答 7

6

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

于 2013-04-21T22:14:13.607 回答
5
  1. 以下内容适用于 PHP 5.x:

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

    • PHP(blah.php?):

      if (isset($_GET['image'])) { $idx=$_GET['image']; // 应该是“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() 会在任何地方显示“图像”URL 吗???

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

于 2012-08-16T19:14:29.620 回答
2

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

print_r($_GET);
于 2012-08-16T19:03:15.597 回答
0

你的“图像”是一个文件吗?如果是这样,那么它应该在$_FILES$_GET...

print_r($_GET);print_r($_FILES);

你看到了什么?

于 2012-08-16T20:30:00.087 回答
0

也请检查您的 .htaccess,也许某些重写规则正在破坏您的 GET 参数。见https://stackoverflow.com/a/6656450/216084

于 2012-11-21T07:18:37.120 回答
0

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

于 2017-06-16T12:35:14.570 回答
-1

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

$image = isset($_GET['image']) ? $_GET['image'] : FALSE;
于 2012-08-16T19:30:52.307 回答