$_GET 包含 URL 字符串,实际查询参数被清空 -- Codeigniter

$_GET contains URL string, and the actual query params are emptied -- Codeigniter

我一直在开发一个网络应用程序,之前我无法联系到的人 built/worked 使用过该应用程序。

我相信我们目前使用的是 CI_VERSION 1.7.0。

我已经确保 enable_query / allow_get_array 配置变量都是正确的。 我可以在 header(查询字符串参数)中看到正确的值。

下面的问题示例:

//E.g.
//URL: http://www.fakeURL.com/something/stuff?color=blue&gender=boy

var_dump($_GET);
// array(1) { '/something/stuff' => string(0) "" } 

尝试使用内置 class 获取 url 参数:输入。

$p = $this->input->get();
var_dump($p);

Codeigniter 建议这样做。例如,您不能使用此函数两次获取参数,因为它第二次被清空。所以我们不知道他们是如何管理参数的。

在 CI 的早期版本中,$_GET 数组在重写 URL 之后包含请求的 controller/method(详见 this answer), the rest of the info in it was stored in the input class and removed (see the legacy docs)。

正如其他答案所述,您需要使用 $this->input->get();,它将包含原始的 $_GET 参数。

我最终使用了这个解决方案,在此处找到:

我会说这更像是一个 'work-around' 而不是解决方案,但我现在不能再花时间在这上面了。

感谢大家的宝贵建议。希望有一天这对其他人也有用。