解決CI框架的Disallowed Key Characters錯誤提示

2013-01-24 17:21:23來源:Veda原型作者:

用CI框架時,有時候會遇到這么一個問題,打開網(wǎng)頁,只顯示 Disallowed Key Characters 錯誤提示。有人說 url 里有非法字符。但是確定 url 是純英文的,問題還是出來了。但清空瀏覽器歷史記錄和cookies后。 刷新就沒

用CI框架時,有時候會遇到這么一個問題,打開網(wǎng)頁,只顯示 Disallowed Key Characters 錯誤提示。有人說 url 里有非法字符。但是確定 url 是純英文的,問題還是出來了。但清空瀏覽器歷史記錄和cookies后。 刷新就沒問題了。有時候。打開不同的瀏覽器。有的瀏覽器會有問題。有的就不會。

解決 CodeIgniter 框架應用中,出現(xiàn)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;
}


這樣就可以了。
 

關(guān)鍵詞:CIphp

贊助商鏈接: