codeigniter Disallowed Key Characters – если все символы разрешены

Возможный дубликат:
Недопустимые ключевые символы CodeIgniter

Недавно я обновил CI с 1,7 до 2,0. Там, после того как я начал получать CI

Запрещенные Ключевые персонажи

ошибка.

Затем я разрешил принимать все символы, чтобы увидеть, исчезнет ли ошибка.

$config['permitted_uri_chars'] = ''; 

Однако это ничего не меняло

Я также включил строки запроса

 $config['enable_query_strings'] = TRUE; 

Я просто не знаю, почему я получаю ошибку с запрещенными символами, когда я разрешаю принимать все символы.

Вот пример URL-адреса, где я получаю ошибку с запрещенными ключевыми символами:

 http://localhost/myapp/index.php??c=user&m=login 

Однако, если бы я удалил один из «?» оно работает

 http://localhost/myapp/index.php?c=user&m=login 

У меня есть файл htaccess, который содержит:

 RewriteEngine on RewriteRule (.*)/index.php $1/ [L] 

любая помощь?

Похоже, CodeIgniter делает отдельную проверку для GET / POST / и имен ключей файлов cookie, где он проверяет их:

 /^[a-z0-9:_\/-]+$/i 

См .: https://bitbucket.org/ellislab/codeigniter/src/c2dad3edb148/system/core/Input.php#cl-537

Я не вижу простого способа отключить эту проверку, кроме редактирования / подкласса Input.php. Вы, вероятно, лучше использовать ключи без странных символов.

Как указано в комментариях к коду, то, что вы делаете, не приветствуется

 | As a security measure you are STRONGLY encouraged to restrict URLs to | as few characters as possible. By default only these are allowed: az 0-9~%.:_- | | Leave blank to allow all characters -- but only if you are insane. | | DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!! 

Тем не менее, возможным решением может стать очистка вашего кеша и, в частности, ваших файлов cookie , как вы можете видеть, например, в этом разделе на CI Forum (и, в меньшей степени, на других ресурсах, которые вы просто получаете в Google)

EDIT: после публикации я увидел, что вы отредактировали свой вопрос и добавили важные детали. Как было предложено другим пользователем, вам нужно проверить класс ввода, чтобы взломать, как codeigniter реализует свою собственную обработку POST и GET.

Особенно, я ищу function _clean_input_keys($str) в библиотеке / input.php и меняю Regex там