Codeigniter和带有查询字符串的分页
我正在尝试在Codeigniter中建立一个带有分页的搜索,并希望得到一些帮助 到目前为止,我已经意识到我不能同时使用url段和查询字符串。仅使用查询字符串会生成非常难看的URL 我知道Codeigniter破坏了GET,我正试着把它放回去。因此。。。如果我把它放在搜索控制器的构造函数中,我的问题会得到解决吗Codeigniter和带有查询字符串的分页,codeigniter,get,query-string,Codeigniter,Get,Query String,我正在尝试在Codeigniter中建立一个带有分页的搜索,并希望得到一些帮助 到目前为止,我已经意识到我不能同时使用url段和查询字符串。仅使用查询字符串会生成非常难看的URL 我知道Codeigniter破坏了GET,我正试着把它放回去。因此。。。如果我把它放在搜索控制器的构造函数中,我的问题会得到解决吗 parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET); 比如,如果它对我有效,我是否需要注
parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET);
比如,如果它对我有效,我是否需要注意安全方面的问题
到目前为止,我已经意识到我不能同时使用url段和查询字符串
当然可以。在您的配置中尝试以下操作:
$config['uri_protocol'] = "PATH_INFO";
这应该会让事情开始。现在,由于CI放弃并清空了$\u GET变量,您需要像这样重新填充它:
parse_str($_SERVER['QUERY_STRING'],$_GET);
$myvar = $this->input->xss_clean($_GET['myvar']);
$myvar = $this->security->xss_clean($_GET['myvar']);
现在这里唯一关心的是,如果启用了全局XSS筛选,您应该知道您只是手动将查询字符串解析为全局$\u GET变量。这意味着您没有通过任何XSS过滤器。在CI 1.x中,您可以通过输入库访问筛选器,如下所示:
parse_str($_SERVER['QUERY_STRING'],$_GET);
$myvar = $this->input->xss_clean($_GET['myvar']);
$myvar = $this->security->xss_clean($_GET['myvar']);
在CI 2.x中,您可以通过以下安全库执行此操作:
parse_str($_SERVER['QUERY_STRING'],$_GET);
$myvar = $this->input->xss_clean($_GET['myvar']);
$myvar = $this->security->xss_clean($_GET['myvar']);
当然,不用说,您可以扩展Controller类,使其具有一个自动执行所有这些操作的get()
方法,这样您就可以执行以下操作:
$myvar = $this->get('myvar');
到目前为止,我已经意识到我不能同时使用url段和查询字符串
当然可以。在您的配置中尝试以下操作:
$config['uri_protocol'] = "PATH_INFO";
这应该会让事情开始。现在,由于CI放弃并清空了$\u GET变量,您需要像这样重新填充它:
parse_str($_SERVER['QUERY_STRING'],$_GET);
$myvar = $this->input->xss_clean($_GET['myvar']);
$myvar = $this->security->xss_clean($_GET['myvar']);
现在这里唯一关心的是,如果启用了全局XSS筛选,您应该知道您只是手动将查询字符串解析为全局$\u GET变量。这意味着您没有通过任何XSS过滤器。在CI 1.x中,您可以通过输入库访问筛选器,如下所示:
parse_str($_SERVER['QUERY_STRING'],$_GET);
$myvar = $this->input->xss_clean($_GET['myvar']);
$myvar = $this->security->xss_clean($_GET['myvar']);
在CI 2.x中,您可以通过以下安全库执行此操作:
parse_str($_SERVER['QUERY_STRING'],$_GET);
$myvar = $this->input->xss_clean($_GET['myvar']);
$myvar = $this->security->xss_clean($_GET['myvar']);
当然,不用说,您可以扩展Controller类,使其具有一个自动执行所有这些操作的get()
方法,这样您就可以执行以下操作:
$myvar = $this->get('myvar');
您还可以通过将
$config['enable_query_strings']=true来启用config.php文件中的查询字符串代码>这将允许您使用输入类,并在需要时自动清理内容<代码>$this->input->get('myvar')
@WeeJames令人惊讶的是,我从未尝试过这个!谢谢你的建议。不用担心:我的更新在这里列出了我如何使查询字符串与标准URL一起工作。。您还可以通过将$config['enable_query_strings']=true来启用config.php文件中的查询字符串代码>这将允许您使用输入类,并在需要时自动清理内容<代码>$this->input->get('myvar')
@WeeJames令人惊讶的是,我从未尝试过这个!谢谢你的建议。不用担心:我的更新在这里列出了我如何使查询字符串与标准URL一起工作。。