У меня есть проект воспламенителя кода, и я хотел попробовать отладить его с помощью Zend Studio. КОГДА я начинаю отладку, я сразу же запускаю ino
«Отправленный вами URI содержит запрещенные символы».
У кого-нибудь есть идеи?
У меня есть проект воспламенителя кода, и я хотел попробовать отладить его с помощью Zend Studio. КОГДА я начинаю отладку, я сразу же запускаю ino
«Отправленный вами URI содержит запрещенные символы».
У кого-нибудь есть идеи?
(Предполагая, что вы используете последнюю версию CodeIgniter (CI) 1.7.0)
CI довольно строг в отношении того, какие символы разрешены в URL-адресах. Вы можете изменить регулярное выражение, которое используется для фильтрации URL-адресов.
В system/config/config.php в строке 126 есть
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
Комментарий над этой строкой в значительной степени объясняет все это, а также то, какое сигнальное значение использовать, чтобы обойти этот фильтр и разрешить все символы (т. е. полностью отключить фильтрацию).
С другой стороны, я обнаружил, что CI слишком ограничителен (во-первых, он не разрешает запросы GET и хочет, чтобы все взаимодействия происходили через POST. Я нахожу это абсолютно безумным и сродни выплескиванию ребенка вместе с водой из ванны. Очевидно. , я не единственный, кто считает, что CI является чрезмерно ограничительным, проект Kohana - это форк CI + оптимизации, а именно чистая поддержка php5 (все OO), (CI по-прежнему совместим с PHP4 за счет невозможности принять преимущества возможностей объектно-ориентированного программирования PHP5).
Я предпочитаю Kohana CI, YMMV
Если вы используете старую версию CodeIgniter и PHP 5.4, вам необходимо изменить
if ( ! preg_match("|^[" . preg_quote($this->config->item('permitted_uri_chars')) . "]+$|i", $str)) {
в
if (FALSE === preg_match("|^[" . preg_quote($this->config->item('permitted_uri_chars')) . "]+$|i", $str)) {
in /system/libraries/URI.php
в движке Expression вы найдете это в /admin/expressionengine/config/config.php
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\\-';
изменить на
$config['permitted_uri_chars'] = '';
но прочитайте комментарий к строке, прежде чем сделать это.
Или не используйте ничего на основе CI.