Правила форума
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений 7
1 Тема от brazhko 23-12-2010 15:30:45
- brazhko
- знакомлюсь с ImageCMS
- Неактивен
- Откуда: Украина, Луганская обл.
- Зарегистрирован: 20-05-2010
- Сообщений: 5
Тема: Русскоязычные теги и Disallowed Key Characters
Добрый день. При открытии любого русскоязычного тега получаю сообщение
Подскажите, пожалуйста, как решить проблему.
2 Ответ от admin 23-12-2010 19:07:01
- admin
- Administrator
- Неактивен
- Зарегистрирован: 05-01-2010
- Сообщений: 429
- User Karma: 6
Re: Русскоязычные теги и Disallowed Key Characters
Можете в файле system/libraries/Input.php функцию
и показать результат?
3 Ответ от brazhko 23-12-2010 22:07:43
- brazhko
- знакомлюсь с ImageCMS
- Неактивен
- Откуда: Украина, Луганская обл.
- Зарегистрирован: 20-05-2010
- Сообщений: 5
Re: Русскоязычные теги и Disallowed Key Characters
string(27) «/tags/search/новинки» string(3) «iua» string(1) «b» string(15) «createnewlink_w» string(15) «createnewlink_h» string(6) «__utmz» string(9) «PHPSESSID» string(6) «__utma» string(6) «__utmc» string(6) «__utmb»
A PHP Error was encountered
Severity: Warning
Message: session_start() [function.session-start]: Cannot send session cookie — headers already sent by (output started at Z:\home\krok.biz\www\system\libraries\Input.php:218)
4 Ответ от admin 23-12-2010 23:54:50 Отредактировано admin (23-12-2010 23:55:25)
- admin
- Administrator
- Неактивен
- Зарегистрирован: 05-01-2010
- Сообщений: 429
- User Karma: 6
Re: Русскоязычные теги и Disallowed Key Characters
Создайте файл ./application/libraries/MY_Input.php c таким текстом:
5 Ответ от brazhko 24-12-2010 14:39:10
- brazhko
- знакомлюсь с ImageCMS
- Неактивен
- Откуда: Украина, Луганская обл.
- Зарегистрирован: 20-05-2010
- Сообщений: 5
Re: Русскоязычные теги и Disallowed Key Characters
К сожалению не работает.
6 Ответ от stansmolin 25-12-2010 07:06:31
- stansmolin
- знакомлюсь с ImageCMS
- Неактивен
- Зарегистрирован: 25-12-2010
- Сообщений: 1
Re: Русскоязычные теги и Disallowed Key Characters
В aplication/libraries создайте MY_URI.php с кодом:
в application/config/config.php измените $config[‘permitted_uri_chars’] на:
7 Ответ от De1iter 17-02-2014 00:27:37
- De1iter
- начал пользоваться ImageCMS
- Неактивен
- Зарегистрирован: 17-07-2013
- Сообщений: 21
- User Karma: -1
Re: Русскоязычные теги и Disallowed Key Characters
Сделал всё по инструкции, всё не работает. Версия 4.4.5 shop
Ошибка следующая:
string(6) «__utma» string(6) «__utmz» string(9) «autologin» string(4) «lt-v» string(9) «PHPSESSID» string(6) «__utmc» string(5) «lt-tl» string(5) «lt-pc» string(15) «lt-on-site-time»
Недопустимые ключевые символы CodeIgniter
CodeIgniter дает мне ошибку Disallowed Key Characters . Я сузил его до атрибута name поля формы: name=’prod[50-4121.5]’ , но я не уверен, что с этим делать.
Проблема заключается в том, что вы используете символы, не включенные в стандартное Regex. Используйте это:
В соответствии с комментариями (и личным опытом) вы не должны изменять их Input.php файл — скорее, вы должны создать/использовать свой собственный MY_Input.php следующим образом:
++ Поддержка китайских иероглифов
Откройте libraries/Input.php ( system/core/Input.php в CI версии 2.0+) и найдите function _clean_input_keys($str)< , весь блок должен выглядеть так:
Измените сокет PCRE, чтобы он разрешал новые символы.
Пожалуйста, не считайте, что char отсутствует . (точка), и вы всегда должны избегать . (точка) в регулярных выражениях, поскольку в противном случае они разрешат любой одиночный char.
Чтобы использовать CodeIgniter с jQuery Ajax, используйте «Object» в качестве данных вместо строки Query, как показано ниже:
Php будет оценивать, что вы написали между скобками [].
Создает string(6) «apples» , потому что он возвращает $foo [2].
Если вы хотите, чтобы это как строка, поместите туда перевернутые запятые.
Я получил эту ошибку при отправке данных из текстового редактора, где я включил амперсанд. Замена амперсанда на% 26 — кодировка URL амперсанда — решила проблему. Я также обнаружил, что запрошенный jQuery ajax-запрос, подобный этому, волшебным образом решает проблему:
где объект json является, неожиданным, неожиданным, объектом JSON, содержащим свойство со значением, которое содержит амперсанд.
Пожалуйста, добавьте $str для выхода ( «Запрещенные ключевые символы.» ); Например: exit (‘Disallowed Key Characters.’. $Str);
чтобы помочь вам в поиске ошибок изгоев.
У меня была такая же ошибка после того, как я опубликовал форму. Я просто пропустил вводную цитату в одном из моих атрибутов имени ввода. У меня было:
Фиксация, которая избавилась от ошибки.
Откройте libraries/Input.php ( system/core/Input.php в CI version 2.0+ ) и найдите функцию _clean_input_keys($str)< ,
Измените if ( ! preg_match(«/^[a-z0-9:_\/-]+$/i», $str)) на if ( ! preg_match(«/^[a-z0-9:_\-|]+$/i», $str))
У меня была такая же проблема благодаря французским персонажам. Вот мой класс, если кому-то это понадобится. Он должен быть сохранен здесь:/application/core/MY_Input.php
(также это расширение сообщит, что символ ведьмы в будущем не допускается)
Шаг1. Поиск функции _clean_input_keys на /system/core/Input.php
Шаг2. Измените эту строку
exit («Запрещенные ключевые символы.);
exit («Запрещенные ключевые символы. $str);
Step3. Обновить страницу, чтобы увидеть символы, которые генерируют ошибку
Step4. Если вам нужно добавить эти символы в список исключений, просто добавьте в эту строку
Я добавляю | (pipe) в примере выше
У меня была такая же ошибка после того, как я опубликовал форму. у них есть пробел в моих атрибутах имени ввода. input name= ‘first_name’
Фиксация, которая избавилась от ошибки.
В моем случае я сериализовал входную форму, используя jquery serialize(), а затем urlencoding с помощью encodeURIComponent().
и codeigniter выдавал недопустимую символьную ошибку.
Я понял, что проблема здесь: jquery serialize дает кодированный вывод, и я снова кодировал его с помощью encodeURIcomponent, который был лишним, и когда кодировщик декодировал его, он не получал фактическую строку, поскольку некоторая часть была закодирована дважды. я объясню это на примере.
который отклонил charecters в соответствии с переменным класса ввода.
Примечание: это не ответ на этот вопрос, но поможет проверить, не встречается ли эта ошибка. спасибо.
CodeIgniter Disallowed Key Characters
CodeIgniter is giving me a Disallowed Key Characters error. I’ve narrowed it down to the name attribute of a form field: name=’prod[50-4121.5]’ but I’m not sure what to do about it.
21 Answers 21
The problem is you are using characters not included in the standard Regex. Use this:
As per the comments (and personal experience) you should not modify they Input.php file — rather, you should create/use your own MY_Input.php as follows:
++Chinese Character Support
Open libraries/Input.php ( system/core/Input.php in CI version 2.0+) and locate function _clean_input_keys($str)< , The whole block should look like so:
Modify the PCRE sot that it allows the new chars.
Please not that the char thats missing is the . (dot) and you should always escape the . (dot) in Regular Expressions as they will otherwise allow any single char.
To use CodeIgniter with jQuery Ajax, use «Object» as data instead of Query string as below:
Step1. Search for function _clean_input_keys on /system/core/Input.php
Step2. Modify this line
exit(‘Disallowed Key Characters.’);
exit(‘Disallowed Key Characters.’ . $str);
Step3. Refresh page to see the characters which generate the error
Step4. If you need to add those characters into the exception list, just add to this line
I add | (pipe) character on the example above
Php will evaluate what you wrote between the [] brackets.
Will produce string(6) «apples» , because it returns $foo[2].
If you want that as a string, put inverted commas around it.
I got this error when sending data from a rich text editor where I had included an ampersand. Replacing the ampersand with %26 — the URL encoding of ampersand — solved the problem. I also found that a jQuery ajax request configured like this magically solves the problem:
where the object json is, surprise, surprise, a JSON object containing a property with a value that contains an ampersand.
Please add .$str to exit(‘Disallowed Key Characters.’); Like: exit(‘Disallowed Key Characters. ‘.$str);
to help you in your search for rogue errors.
I had the same error after I posted a form of mine. I simply missed the opening quote in one of my input name attributes. I had:
Fixing that got rid of the error.
Open libraries/Input.php ( system/core/Input.php in CI version 2.0+ ) and locate function _clean_input_keys($str)< ,
Modify if ( ! preg_match(«/^[a-z0-9:_\/-]+$/i», $str)) to if ( ! preg_match(«/^[a-z0-9:_\-|]+$/i», $str))
I had the same problem thanks to french specials characters. Here is my class in case anybody needs it. It has to be saved here : /application/core/MY_Input.php
(also this extension will report witch character is not allowed in the future)
I had the same error after I posted a form of mine. they have a space in to my input name attributes. input name=’ first_name’
Fixing that got rid of the error.
In my case, i was serializing an input form using jquery serialize() and then urlencoding it using encodeURIComponent().
and codeigniter was giving the disallowed character error.
i figured the issue here was, jquery serialize gives an encoded output and i was again encoding it with the encodeURIcomponent which was unnecessary, and when codeingiter decoded it it was not getting the actual string as some part was encoded twice. i will explain it with an example.
which has disallowed charecters as per the input class regex.
note: this is not an answer to this question, but would help to check if one is encountering this error. thanks.