我在switch语句中使用$ _GET来确定在选择框中显示的选项。在我将服务器升级到PHP 5.3.21之前,情况非常好。现在我得到未定义的索引和未定义的变量错误消息。我修改了我的代码以包含ifset()。现在没有错误,但我不能让PHP认识到$ _GET [“menuid”}确实有一个值。
我正在尝试从以下位置获取变量的网址:
http://www.example.com/mod/page/view.php?id=5100&module=1&menuid=2&module=1&page=2
我正在使用的代码:
if (isset($_GET['menuid'])) {
$menuid = $_GET['menuid'];
}
else {
$menuid = "not working";
}
echo $menuid;
switch($menuid) {
// My code
}
结果是:
“不工作”
编辑:PHP子页面上的`var_dump($ _ GET)'的结果
array(0) { }
编辑:PHP主页上var_dump($_GET)
的结果
array(4) { ["id"]=> string(4) "5100" ["module"]=> string(1) "1" ["menuid"]=> string(1) "2" ["page"]=> string(1) "2" }
上面的var_dump来自PHP主页。原始代码位于一个单独的PHP页面上,我将其包含在带有file_get_contents();的PHP主页面中。 file_get_contents()会导致此问题吗?
答案 0 :(得分:1)
事实证明,file_get_contents()使$ _GET无法正常工作。我已将主PHP页面上的代码修改为require_once()。我的原始代码所在的子PHP页面的var_dump($ _ GET)现在导致了:
array(4) { ["id"]=> string(4) "5100" ["module"]=> string(1) "1" ["menuid"]=> string(1) "2" ["page"]=> string(1) "2" }
感谢@Mansfield的帮助
答案 1 :(得分:0)
您有两次定义“模块”。我认为正确的URL看起来像这样:
http://www.example.com/mod/page/view.php?id=5100&menuid=2&module=1&page=2