一尘不染

在codeigniter中启用$ _GET

php

我一直在尝试找出如何在CI中启用$ _GET。

看起来框架故意破坏了$ _GET数组,并且启用它需要认真修改核心类。谁能说这是为什么,以及如何克服它?

提醒您,我希望保持URI的解析和路由,只需要$ _GET即可。


阅读 238

收藏
2020-05-29

共1个答案

一尘不染

将以下库添加到您的应用程序库。它覆盖清除$ _GET数组的默认输入库的行为。它允许URI段和查询字符串混合使用。

应用程序/库/MY_Input.php

class MY_Input extends CI_Input 
{
    function _sanitize_globals()
    {
        $this->allow_get_array = TRUE;
        parent::_sanitize_globals();
    }
}

修改某些配置设置也很有必要。uri_protocol设置需要更改为PATH_INFO,并且将’?’ 需要将字符添加到URI中允许的字符列表中。

application / config / config.php

$config['uri_protocol'] = "PATH_INFO";
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-?';

然后可以访问通过查询字符串传递的值。

$this->input->get('x');
2020-05-29