使用查询字符串进行Codeigniter和分页

时间:2010-11-01 21:35:47

标签: codeigniter get query-string

我正在尝试在Codeigniter中建立一个分页搜索,并希望得到一些帮助。

到目前为止,我已经意识到我不能同时使用两个url段和查询字符串。仅使用查询字符串会产生非常难看的URL。

我知道Codeigniter会破坏GET,而我正试图将其重新插入.Ergo ...如果我把它放在搜索控制器的构造函数中,我的问题会解决吗?

        parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET);

同样,如果它对我有用,我还需要注意安全吗?

1 个答案:

答案 0 :(得分:3)

  

到目前为止,我已经意识到我不能同时使用两个网址段和查询字符串。

当然可以。在配置中试试这个:

$config['uri_protocol'] = "PATH_INFO";

那应该开始了。现在,由于CI放弃并清空$ _GET变量,您需要像这样重新填充它:

parse_str($_SERVER['QUERY_STRING'],$_GET);

现在唯一真正关心的是,如果你有全局XSS过滤,你应该知道你只是手动将查询字符串解析为全局$ _GET变量。这意味着您尚未通过任何XSS过滤器传递它。在CI 1.x中,您可以通过输入库访问过滤器,如下所示:

$myvar = $this->input->xss_clean($_GET['myvar']);

在CI 2.x中,您可以通过安全库执行此操作:

$myvar = $this->security->xss_clean($_GET['myvar']);

当然,不言而喻,您可以扩展Controller类,使其具有get()方法,自动完成所有这些操作,以便您可以执行此操作:

$myvar = $this->get('myvar');