У меня есть проект воспламенителя кода, и я хотел попробовать отладить его с помощью Zend Studio. Когда я начинаю отладку, я сразу запускаю ino
"В URI, который вы отправили, были запрещены символы.
Есть ли у кого-нибудь идеи?
У меня есть проект воспламенителя кода, и я хотел попробовать отладить его с помощью Zend Studio. Когда я начинаю отладку, я сразу запускаю ino
"В URI, который вы отправили, были запрещены символы.
Есть ли у кого-нибудь идеи?
(Предполагая, что вы используете последнюю версию CodeIgniter (CI), которая равна 1.7.0)
CI довольно строг в отношении того, какие символы он позволяет в URL-адресах. Вы можете изменить регулярное выражение, которое используется для фильтрации URL-адресов.
В системе /config/config.php в строке 126 есть
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
Комментарий выше этой строки в значительной степени объясняет все это, и какое значение дозорного значения используется для переустановки этого фильтра и разрешения всех символов (т.е. полностью отключить фильтрацию).
На стороне примечания я обнаружил, что CI слишком ограничительный (для одного он не разрешает запросы GET и не хочет, чтобы все взаимодействия происходили через POST. Я считаю это абсолютно сумасшедшим и сродни тому, что бросает ребенка с ванной Очевидно, что я не единственный, кто считает, что CI чрезмерно ограничительный, проект Kohana является развитой оптимизацией CI +, а именно чистой поддержкой php5 (все OO), (CI по-прежнему совместим с PHP4 за счет отсутствия способный использовать возможности PHP5 OO).
Я предпочитаю Кохану над 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)) {
в/system/libraries/URI.php
в Expression engine вы найдете это в /admin/expressionengine/config/config.php
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\\-';
измените на
$config['permitted_uri_chars'] = '';
но прочитайте комментарий линии, прежде чем делать это.
Или не используйте ничего на основе CI.