Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter和带有查询字符串的分页_Codeigniter_Get_Query String - Fatal编程技术网

Codeigniter和带有查询字符串的分页

Codeigniter和带有查询字符串的分页,codeigniter,get,query-string,Codeigniter,Get,Query String,我正在尝试在Codeigniter中建立一个带有分页的搜索,并希望得到一些帮助 到目前为止,我已经意识到我不能同时使用url段和查询字符串。仅使用查询字符串会生成非常难看的URL 我知道Codeigniter破坏了GET,我正试着把它放回去。因此。。。如果我把它放在搜索控制器的构造函数中,我的问题会得到解决吗 parse_str(substr(strrchr($_SERVER['REQUEST_URI'], "?"), 1), $_GET); 比如,如果它对我有效,我是否需要注

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

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

我知道Codeigniter破坏了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一起工作。。