我有一个代码点火器项目,我想尝试使用 Zend Studio 对其进行调试。当我开始调试时,我立即运行 ino
“所提交的网址带有不被接受的字符。”
有人有什么主意吗?
我有一个代码点火器项目,我想尝试使用 Zend Studio 对其进行调试。当我开始调试时,我立即运行 ino
“所提交的网址带有不被接受的字符。”
有人有什么主意吗?
(假设您使用的是最新版本的 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
如果使用旧版本的 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
在表达式引擎中,您将在 /admin/expressionengine/config/config.php 中找到它
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\\-';
改成
$config['permitted_uri_chars'] = '';
但在执行此操作之前请阅读行注释。
或者不要使用任何基于 CI 的东西。