0

我在 switch 语句中使用 $_GET 来确定在选择框中显示的选项。在我将服务器升级到 PHP 5.3.21 之前,一切都很好。现在我得到未定义的索引和未定义的变量错误消息。我已经修改了我的代码以包含 if isset()。现在没有错误,但我无法让 PHP 识别 $_GET["menuid"} 确实有一个值。

我试图从中获取变量的 URL:

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) { }

编辑:var_dump($_GET)PHP 主页上的结果

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() 会导致这个问题吗?

4

2 回答 2

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 的帮助

于 2013-09-05T14:39:12.007 回答
0

您定义了两次“模块”。我认为正确的 URL 如下所示:

http://www.example.com/mod/page/view.php?id=5100&menuid=2&module=1&page=2

于 2013-09-05T14:11:56.730 回答