| 
 | 
 
 
发表于 2012-5-17 15:37:28
|
显示全部楼层
 
 
 
如果你们相信我,试试这个方法: 
 
用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示。有人说 url 里有非法字符。但是确定 url 是纯英文的,问题还是出来了。但清空浏览器历史记录和cookies后。 刷新就没问题了。有时候。打开不同的浏览器。有的浏览器会有问题。有的就不会。 
解决 CodeIgniter 框架应用中,出现Disallowed Key Characters错误提示的方法。找到core文件夹下的Input文件,将下面的代码: 
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; 
} 
 
 
改成这样: 
function _clean_input_keys($str)   
{   
    $config = &get_config('config');   
    if ( ! preg_match("/^[".$config['permitted_uri_chars']."]+$/i", rawurlencode($str)))   
    {   
        exit('Disallowed Key Characters.');   
    }   
    // Clean UTF-8 if supported 
    if (UTF8_ENABLED === TRUE) 
    { 
        $str = $this->uni->clean_string($str); 
    } 
    return $str;   
}  
 
 
 
或者改成: 
view sourceprint? 
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; 
} 
 
  */ 
 |   
 
 
 
 |