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 相关文章推荐
PHP实现文件安全下载
Oct 09 PHP
phpwind中的数据库操作类
Jan 02 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
May 02 PHP
让PHP更快的提供文件下载的代码
Jun 13 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
Zend Framework动作助手Json用法实例分析
Mar 05 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
PHP使用函数用法详解
Sep 30 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
jQuery自定义添加"$"与解决"$"冲突的方法
2015/01/19 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
vue2.0之多页面的开发的示例
2018/01/30 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
Python 连连看连接算法
2008/11/22 Python
python判断字符串是否包含子字符串的方法
2015/03/24 Python
python如何读写json数据
2018/03/21 Python
flask入门之表单的实现
2018/07/18 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
python pymysql库的常用操作
2020/10/16 Python
Python 内存管理机制全面分析
2021/01/16 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
大学生第一学年自我鉴定
2014/09/12 职场文书
兴趣班停课通知
2015/04/24 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
Java 在生活中的 10 大应用
2021/11/02 Java/Android