11

我有一个代码点火器项目,我想尝试使用 Zend Studio 对其进行调试。当我开始调试时,我立即运行 ino

“所提交的网址带有不被接受的字符。”

有人有什么主意吗?

4

3 回答 3

26

(假设您使用的是最新版本的 CodeIgniter (CI),即 1.7.0)

CI 对它允许在 URL 中使用的字符非常严格。您可以修改用于过滤 URL 的正则表达式。

在第 126 行的 system/config/config.php 中是

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

此行上方的注释几乎解释了这一切,以及使用什么标记值来覆盖此过滤器并允许所有字符(即完全关闭过滤)。

在旁注中,我发现 CI 限制太多(因为它不允许 GET 请求并希望所有交互都通过 POST 发生。我觉得这绝对是疯狂的,类似于把婴儿和洗澡水一起扔出去。显然, 我不是唯一一个认为 CI 限制太多的人,Kohana 项目是 CI + 优化的一个分支,即纯 php5 支持(所有 OO),(CI 仍然是 PHP4 兼容,但代价是不能接受PHP5 OO 功能的优势)。

我更喜欢 Kohana 而不是 CI、YMMV

http://kohanaphp.com/home

于 2008-12-08T02:34:06.197 回答
7

如果使用旧版本的 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

于 2013-07-10T09:24:33.207 回答
2

在表达式引擎中,您将在 /admin/expressionengine/config/config.php 中找到它

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

改成

$config['permitted_uri_chars'] = ''; 

但在执行此操作之前请阅读行注释。

或者不要使用任何基于 CI 的东西。

于 2013-08-05T19:40:38.800 回答