用户
 找回密码
 入住 CI 中国社区
搜索
楼主: ecpt
收起左侧

Disallowed Key Characters 怎么回事?

  [复制链接]
发表于 2010-10-13 10:12:56 | 显示全部楼层
url全是英文的,还是会出现. Disallowed Key Characters .郁闷。清空浏览器历史记录和cookies吗?
发表于 2010-10-13 15:30:56 | 显示全部楼层
回复 10# avinmo


    辛苦辛苦,
cookie里有这样的东东“1286952819|3780611|2977|0|0|0”,不知道用来干什么的
发表于 2010-10-13 15:32:10 | 显示全部楼层
回复 11# leibao


    你没看你楼上的回复?
发表于 2010-10-28 14:24:10 | 显示全部楼层
回复 2# ecpt


    是你路由器设置有问题,你进入路由器设置面板找到防火选项
未命名.jpg
把这两项勾去了,重启路由

问题解决


有不会的Q21366226
 楼主| 发表于 2010-10-28 15:08:49 | 显示全部楼层
我也一直觉得是路由器问题,不过都是客户那里出问题了,我也没办法去找问题原因。经常有业务员来投诉问题,我实在受不了了,就重新找了下问题,发现出问题字符串在cookie里面,某些键名前面多了,_,于是就在system\libraries\Input.php中修改了下,问题解决,修改方法如下:
function _clean_input_keys($str)
        {
                 if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
                 {
                        exit('Disallowed Key Characters.'.$str);
                 }

                return $str;
        }
修改为:
        function _clean_input_keys($str)
        {
                 if(preg_match("/^,_[a-z0-9:_\/-]+$/",$str)){
                        $str = preg_replace("/,_/","",$str);
                }
                 
                 if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
                 {
                        exit('Disallowed Key Characters.'.$str);
                 }

                return $str;
        }

我用了一年的时间解决了一个问题

点评

灰常感谢,节省了偶的时间。  发表于 2012-3-5 19:45
恭喜你  发表于 2011-11-27 22:43
发表于 2011-2-21 15:57:13 | 显示全部楼层
发表于 2011-2-21 15:57:24 | 显示全部楼层
发表于 2011-5-25 10:21:43 | 显示全部楼层
10  的办法倒是可以  但是不知道有什么其他的影响没得 呢? 我已经测试通过了   

谢谢他的办法
发表于 2011-6-8 11:50:06 | 显示全部楼层
我都没有这个文件。
一样存在。
发表于 2011-9-27 23:48:06 | 显示全部楼层
                 if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
                 {
                        exit('Disallowed Key Characters.'.$str);
                 }

直接删除这里的if语句就得了!100%解决!   但是完善解决方案是:加个中文正则就好了!安全

本版积分规则