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


Posted in PHP onApril 21, 2014

打开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 相关文章推荐
WINDOWS服务器安装多套PHP的另类解决方案
Oct 09 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
PHP JS Ip地址及域名格式检测代码
Sep 27 PHP
php共享内存段示例分享
Jan 20 PHP
smarty内置函数capture用法分析
Jan 22 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
php生成curl命令行的方法
Dec 14 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
PHP5中实现多态的两种方法实例分享
Apr 21 #PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 #PHP
PHP正则提取不包含指定网址的图片地址的例子
Apr 21 #PHP
phpmyadmin打开很慢的解决方法
Apr 21 #PHP
PHP递归删除目录几个代码实例
Apr 21 #PHP
PHP批量生成静态HTML的简单原理和方法
Apr 20 #PHP
php setcookie函数的参数说明及其用法
Apr 20 #PHP
You might like
MySql中正则表达式的使用方法描述
2008/07/30 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
Memcache 在PHP中的使用技巧
2010/02/08 PHP
php定义数组和使用示例(php数组的定义方法)
2014/03/29 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
php生成rss类用法实例
2015/04/14 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
一张图带我们入门Python基础教程
2017/02/05 Python
详解【python】str与json类型转换
2019/04/29 Python
对python3 sort sorted 函数的应用详解
2019/06/27 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
python的slice notation的特殊用法详解
2019/12/27 Python
python集合的新增元素方法整理
2020/12/07 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
百度JavaScript笔试题
2015/01/15 面试题
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
慰问信格式规范
2015/03/23 职场文书
主婚人致辞精选
2015/07/28 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
基于JavaScript实现年月日三级联动
2021/06/22 Javascript