使用URL搜索Codeigniter以包含不允许的URI字符

时间:2012-03-09 04:33:33

标签: codeigniter url search uri encode

我想使用url字符串中的搜索字词在codeigniter中实现搜索但是在允许不允许的uri字符时遇到问题('是主要问题)

e.g。 www.example.com/search/find/search_term/collector的edition / category / stackoverflow

基本上在'stackoverflow'类别中找到'collector's edition'

这会引发URI异常错误 - 即使我使用javascript codeigniter对其进行编码也会对其进行编码。显然我不想去允许所有角色。

我还希望能够在返回数据时对其进行解码,这样我也可以在输入框中显示搜索词。

2 个答案:

答案 0 :(得分:1)

使用查询字符串而不是与CI建议的允许URI字符作斗争:

  

example.com/search/?search_term=collector's+edition&category=stackoverflow

确保您启用了查询字符串($_GET):

$config['allow_get_array'] = TRUE; // This enables $_GET data

// The name of this item is misleading, it's not what you might think 
$config['enable_query_strings'] = FALSE; // <-- Ignore this, make sure it's FALSE

抓住搜索词:

$query = $this->input->get('search_term'); // No need to decode

答案 1 :(得分:0)

您需要在allowed_uri_chars中添加“=”。您将在config / config.php文件中找到该字符串。

它也可能是。 (点)在那里。请尝试添加点。你需要有点勇敢 并试验找出有效的方法。

尝试$config[‘permitted_uri_chars’] = ‘a-z 0-9~%.:?=_\-’;