用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2667|回复: 4
收起左侧

[已解决] CI2.01,个别电脑Disallowed Key Characters

[复制链接]
发表于 2011-6-8 12:04:51 | 显示全部楼层 |阅读模式
只是在个别电脑,打开首页都会出现Disallowed Key Characters,我的版本里根本没有Input.php 这个文件存在。




发表于 2011-6-8 12:08:49 | 显示全部楼层
本帖最后由 jeongee 于 2011-6-8 12:10 编辑

没有就怪了,那是CI核心文件,在system/core下面
出现这个问题一般是由于用户的cookie多了一些不被允许的字符,解决方法:
扩展input类的下面的方法:
PHP复制代码
 
        function _clean_input_keys($str)
        {
                if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
                {
                        exit('Disallowed Key Characters.');
                }
 
                // Clean UTF-8 if supported
                if (UTF8_ENABLED === TRUE)
                {
                        $str = $this->uni->clean_string($str);
                }
 
                return $str;
        }
 
复制代码

在那个正则里加入导致问题的出现的字符吧,具体字符是什么,你可以查看客户的cookies

评分

参与人数 1威望 +5 收起 理由
smartweb + 5 很给力!

查看全部评分

 楼主| 发表于 2011-6-8 12:20:28 | 显示全部楼层
$config = &get_config('config');   
    if ( ! preg_match("/^[".$config['permitted_uri_chars']."]+$/i", rawurlencode($str)))   
    {   
        exit('Disallowed Key Characters.');   
    }
               
发表于 2011-6-9 12:57:03 | 显示全部楼层
jeongee 发表于 2011-6-8 12:08
没有就怪了,那是CI核心文件,在system/core下面
出现这个问题一般是由于用户的cookie多了一些不被允许的字 ...

谢谢你,我刚才的问题解决了
 楼主| 发表于 2011-6-13 14:10:12 | 显示全部楼层
我已经在官网发帖要求改内核了。

本版积分规则