Сообщение о недопустимых ключевых символах в Codeigniter (v2) - PullRequest
0 голосов
/ 15 февраля 2012

Я недавно сталкивался с этой ошибкой в ​​пользовательском CMS, которую я строю - эта ошибка появляется, когда я отправляю форму, которая использует мультиселект - может кто-нибудь предложить наиболее распространенные причины этой ошибки.

хорошо - я думаю, что это могут быть множественные массивы, вызывающие проблему, например, у меня есть такой массив в таблице ..

hotels[url][]
hotels[text][]
hotels[url][]

Разве это не будет разрешено в $ _POST?

Ответы [ 4 ]

2 голосов
/ 15 февраля 2012

Если вы заглянете в файл config.php внутри папки application / config, вы увидите следующую строку:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

Это регулярное выражение, содержащее символы в белом списке, которые разрешены codeigniter.Если в строке запроса есть что-то еще, вы получите эту ошибку.

1 голос
/ 19 декабря 2012

удалить запятые из ваших входных имен. Например: имя ['type'] неверно. Это должно быть имя [тип]

1 голос
/ 15 февраля 2012

Возможно, вы отправляете форму с помощью GET вместо POST. При множественном выборе обычно используются обозначения массива (myarray []), которые представляют собой символы, которые обычно не допускаются CodeIgniter в URL.

Если вы уверены, что используете POST, я бы посоветовал проверить две вещи:

  1. Убедитесь, что, если вы используете защиту CSRF CodeIgniter, вы отправляете действительный токен с формой. Вы можете проверить, является ли это проблемой, отключив защиту CSRF и попытавшись отправить форму. Защита CSRF обычно включается в вашем файле config.php через переменную $ config ['csrf_protection']. Больше информации о защите CodeRgniter от CSRF можно найти здесь .
  2. Дважды проверьте URL-адрес, который вы используете для отправки формы, чтобы убедиться, что в нем нет символов, которые не разрешены в вашем $ config ['enabled_uri_characters'] в application / config / config.php.
0 голосов
/ 01 декабря 2014

if (! Preg_match («/ ^ [a-z0-9: _ / -] + $ | / i», $ str))

Я добавляю | (труба) символ на примере выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...