Возможный дубликат:
Недопустимые ключевые символы CodeIgniter
Когда я проверяю все флажки (код ниже), он дает мне эту ошибку:
Запрещенный ключевой символ
Вот мой HTML:
<label>Stability Control </label><input type="checkbox" class="largercheckbox" name="checkBox[Stability-Control]"></input><br/> <label>Xenon Headlamps</label><input type="checkbox" class="largercheckbox" name="checkBox[Xenon-Headlamps]"></input><br/>
В чем проблема? Я думаю, что мой конфигурационный файл разрешает эти символы:
$config['permitted_uri_chars'] = 'az 0-9~%.:_\-';
Следующая функция, найденная в system/core/Input.php
запрещает символы.
function _clean_input_keys($str) { if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) ...
Это позволит az AZ 0-9: _ \ / –
Вы должны расширить класс ввода, создав файл MY_Input.php в /application/core/
и воссоздать метод и добавить любые символы, которые вы хотите разрешить. См. Раздел Создание базовых системных классов для примера, как это сделать.
Однако вы должны быть осторожны с этим, так как вы можете открыть ненужные дыры в безопасности. Вам лучше переписать форму, чтобы она прошла существующую проверку.
Изменить: В этой статье описывается как проблема, так и решение, как описано выше, путем расширения класса ввода.
После обыска, следующие сообщения также показывают, как это делается для решения одной и той же проблемы
Недопустимые ключевые символы CodeIgniter
CodeIgniter – запрещенные ключевые символы
Хорошо, вот мой ответ
Вы должны сначала перейти к system / core / Input.php и искать функцию, называемую
_clean_input_keys($str)
Я не знал, что такое символ, который запрещен здесь, поэтому, когда вы добавляете $ str, как показано ниже
if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) { exit('Disallowed Key Characters.'.$str); // HERE }
вы получите именно тот персонаж, из-за которого проблема моя была «)», поэтому вам нужно сделать одно из следующих действий: удалить запрещенный символ из html или разрешить ему, как @Ben Swinburne
Надеюсь, что помогите другим