网站首页

ci Disallowed Key Characters 错误的解决

发布时间:2015-04-01 10:23:45编辑:admin阅读(

    使用ci开发的一个应用,时不时有用户报如下错误:
    Disallowed Key Characters
    用户是在直接打开首页时报错,未带任何参数,也不存在post传值,于是怀疑是cookie的问题
    于是修改libraries/input.php 219行,输出错误,
     
    if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))  
      {  
     
    var_dump($str);  
       exit('Disallowed Key Characters.');  
      }  
     
    在浏览里再打开时
    string(20) "cnzz_a2336574&web_id" 
    Disallowed Key Characters
    果然是cookie的问题,且含有&符号,怀疑是在其它二级域下设置了cookie,一起带过来了。
    找到原因就好办了,在正则里增加&(这个字符应该不危险吧~~)
    问题解决
     
     
     
     
    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;
    }