我无法让我的$ _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中的一个问题,不允许它阅读
答案 0 :(得分:4)
以下 应该与PHP 5.x一起使用:
HTTP:
http://myserver/blah.php?image=2
PHP(blah.php?):
if(isset($ _ GET ['image'])){ $ IDX = $ _ GET [ '图像']; //应为“2” }
我假设您正试图从“blah.php”访问“$ _GET []”。 如果没有,您需要将URL传递给您正在呼叫的页面。
print_r($_GET)
或var_dump($_GET)
是一个好主意。碰撞error_reporting(NNN)
。
一个更好的更好的想法是创建一个虚拟页面,phpinfo.php:
phpinfo.php的:
<?php phpinfo (); ?>
http查询:
http://myserver/phpinfo.php?image=2
问:phpquery()是否在任何地方显示“图像”网址
最后,这是一个类似的案例,结果证明是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;