PHP ZEND $_GET 给出未定义的索引

PHP ZEND $_GET Gives Undefined Index

所以我正在编辑我公司的一个网站。我不太熟悉 Zend 的工作方式,但我一直没有找到解决这个问题的好方法。

我们有两个不同的网站,一个是我可以自由编辑和测试的临时网站,另一个是 public 可以查看的实时版本。当我创建一个新的 controller/view 时,我使用 $_GET 数据来处理一些表单。测试端按预期工作,但生产端不知为何没有工作。经过一些测试后,我发现 $_GET 数据实际上并没有被发送,因此我的脚本会引导我退出(正如它设计的那样)。

URL 看起来有点像这样:

/admin/something/update?data=20

所以我像往常一样检查 $_GET:

if ( isset($_GET) && !empty($_GET["data"]) ) {
  // do something
} else {
  // redirect the user
}

如果没有 $_GET 数据(并且如果数据不包含值),它总是像它应该的那样重定向。

所以我调试并发现这就是我 print_r 之后 $_GET 的样子,尽管 URL 清楚地包含 $_GET 数据,但我得到的只是一个空数组。

这可能是我对 Zend 处理 GET 和 POST 数据的了解有限(因为我几乎保留了老式 PHP 的编辑),所以对此的任何了解都会很棒。谢谢

您的 .htaccess 文件似乎有问题。 可能是一些额外的 SEO 重写规则。

您可以添加并尝试,两者都可以,

RewriteRule . index.php?url= [PT,L,QSA]

或者,

RewriteRule ^(.*)$ %{ENV:BASE}/index.php [L]

为了获得价值,你应该使用,

 if(isset($_GET['data']) && $_GET['data']){
            var_dump($_GET['data']);exit;
        }