正在为你努力加载中........

点滴记录 分享
11
2014-2
首页 >> php >> 解决CI框架的Disallowed Key Characters错误提示

解决CI框架的Disallowed Key Characters错误提示

用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;   
}  
或者改成:

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;
}


作者:一根烟的寂寞 分类:php
浏览:1905 评论:0