当前位置:首页 > PHP教程 > php高级应用 > 列表

CodeIgniter框架提示Disallowed Key Characters的解决办法

发布:smiling 来源: PHP粉丝网  添加日期:2020-11-19 15:17:04 浏览: 评论:0 

在做项目过程中,出现提交form表单的时候,出现了Disallowed Key Characters 的提示,打开ci框架的源码不难发现,在ci的核心input类中有这样一个函数:

  1. function _clean_input_keys($str
  2.     { 
  3.         if ( ! preg_match("/^[a-z0-9:_\/-]+$/i"$str)) 
  4.         { 
  5.             exit('Disallowed Key Characters.'); 
  6.         } 
  7.  
  8.         // Clean UTF-8 if supported 
  9.         if (UTF8_ENABLED === TRUE) 
  10.         { 
  11.             $str = $this->uni->clean_string($str); 
  12.         } 
  13.  
  14.         return $str

这是进行过滤的,所以抛出错误,我们在application的core中对这个方法进行重写即可,命名一个为MY_Input.php(前缀MY_可以在config.php中自定义),然后将下面代码加入即可,代码如下:

  1. class AI_Input extends CI_Input { 
  2.  
  3.     //构造函数 
  4.     function __construct(){ 
  5.         parent::__construct(); 
  6.     } 
  7.  
  8.     function _clean_input_keys($str
  9.     { 
  10.         if(preg_match("/^,_[a-z0-9:_\/-]+$/",$str)){ 
  11.             $str = preg_replace("/,_/","",$str); 
  12.         } 
  13.  
  14.         if ( ! preg_match("/^[a-z0-9:_\/-]+$/i"$str)) 
  15.         { 
  16.             exit('Disallowed Key Characters.'.$str); 
  17.         } 
  18.         return $str
  19.     } 

Tags: CodeIgniter Disallowed

分享到: