2012-04-27 70 views
1

是否有一种方法可以在一个控制器或一个函数中启用查询字符串。 例如,我想在搜索功能中使用查询字符串,并在所有其他字段中使用查询字符串。在Codeigniter中启用每个控制器的查询字符串

有没有办法做到这一点?

我可以做这样的事情:

$this->config->set_item('uri_protocol', 'PATH_INFO'); 
$this->config->set_item('enable_query_strings', TRUE); 
+0

为什么你想在第一个地方使用查询字符串?您可以使用段而不是查询字符串来传递CI方式的数据。 example.com?first=cheese&second=pizza像这样完成CI方式 - example.com/controller/method/cheese/pizza。 – Catfish 2012-04-27 21:31:08

+0

p.s.欢迎来到堆栈溢出。 – Catfish 2012-04-27 21:32:47

回答

5

一个简单的方式实现这一目标是通过解析服务器查询字符串像这样。

$get_data = array(); 

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

这会给你一个充满数据的非常不安全的数组,所以你应该使用CI的安全类来使它更安全;如此喜欢;

$get_data = $this->security->xss_clean($get_data); 

这并不意味着路由通过GET工作,只允许您安全地获取GET变量。

+0

非常感谢。这个答案为我挽救了几个非常糟糕的选择。 – NobleUplift 2013-10-14 15:48:39

相关问题