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 模拟$_PUT实现代码
Mar 15 PHP
php从右向左/从左向右截取字符串的实现方法
Nov 28 PHP
详解PHP导入导出CSV文件
Nov 03 PHP
PHP借助phpmailer发送邮件
May 11 PHP
PHP连接MYSQL数据库实例代码
Jan 20 PHP
Smarty分页实现方法完整实例
May 11 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
ThinkPHP实现分页功能
Apr 28 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
PHP解决高并发的优化方案实例
Dec 10 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
简化php模板页面中分页代码的解析
2009/02/06 PHP
php cli 方式 在crotab中运行解决
2010/02/08 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
php的4种常见运行方式
2015/03/20 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
js 日期转换成中文格式的函数
2009/07/07 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
matplotlib实现区域颜色填充
2019/03/18 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
Python常用数据分析模块原理解析
2020/07/20 Python
Django model class Meta原理解析
2020/11/14 Python
Python 多进程、多线程效率对比
2020/11/19 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
大学生入党思想汇报
2014/01/01 职场文书
给幼儿园老师的表扬信
2014/01/19 职场文书
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
有关爱国演讲稿
2014/05/07 职场文书
2014年检验员工作总结
2014/11/19 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python