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

Madeline ·
更新时间:2024-11-13
· 790 次阅读

打开ci框架的源码不难发现,在ci的核心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;
}
这是进行过滤的,所以抛出错误

我们在application的core中对这个方法进行重写即可
命名一个为MY_Input.php(前缀MY_可以在config.php中自定义),然后将下面代码加入即可
代码如下:
class AI_Input extends CI_Input {
    //构造函数
    function __construct(){
        parent::__construct();
    }
    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 syntax error, unexpected $end 错误的一种原因及解决jQuery选中select控件 无法设置selected的解决方法php iconv() : Detected an illegal character in input stringphp异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()''d code errorPHP Parse Error: syntax error, unexpected $end 错误的解决办法w3wp进程发生死锁ISAPI aspnet_isapi.dll报告它自身有问题,原因Deadlock detectedjquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误C++中的三种继承public,protected,private详细解析PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法pycharm 使用心得(九)解决No Python interpreter selected的问题PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法强制SQL Server执行计划使用并行提升在复杂查询语句下的性能深入理解C++中public、protected及private用法jQuery中:selected选择器用法实例在sqlserver中如何使用CTE解决复杂查询问题



characters codeigniter key

需要 登录 后方可回复, 如果你还没有账号请 注册新账号