CodeIgniter框架提示Disallowed Key Characters的解决办法
打开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 错误的一种原因及解决
Parse error: syntax error, unexpected $end in script.php on line xx 调试了一会后发现产生错误的行是文件中间某行 //$str .= "?>\n"; 想起来了 PHP 解释器允许的结尾标记那行还可以用单行注释,即 //$str .= "?>\n"; 被解释成结尾标记前有注释,注释的内容是 //$str .= ",而 ?> 后面的 \n"; 会被解释作 PHP 块外
-
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
jquery.bgiframe.js在IE9下的错误 复制代码 代码如下: SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5) jquery.bgiframe.js, 行8 字符976 错误代码 复制代码 代码如下: 1 {if(!$('iframe.bgiframe',this)[0])this.insertBefore(document.createElement(html),this.firstChild);});};})(jQuery
-
pycharm 使用心得(九)解决No Python interpreter selected的问题
初次安装完PyCharm后,新建项目时,遇到了No Python interpreter selected的问题. 意思是说没有找到Python解释器.那我们添加Python解释器即可. Python–Preferences–Project Interpreter–Python Interpreter 点击"+"号选择系统安装的Python. 然后再返回Project Interpreter,选择刚添加的解释器. 现在就能新建项目了. 开始你的Python之旅吧.
-
问个高难度的复杂查询(在一个时间段内的间隔查询)
我想在一个时间段内然后按照间隔时间来查询数据 select * from 监控温度表 where 监控温度表.时间 between '" + Str(dtStart.Value) + "'AND '" + Str(dtEnd.Value) + "'order by id 这个是在一个时间段内查询,现在要加个时间间隔来查询,不知所云,望高手解答 其中dtStart.Value和dtEnd.Value是DTPicker1控件 举例:比如说我查询时间段在 2007-1-5
-
强制SQL Server执行计划使用并行提升在复杂查询语句下的性能
通过观察执行计划,发现之前的执行计划在很多大表连接的部分使用了Hash Join,由于涉及的表中数据众多,因此查询优化器选择使用并行执行,速度较快.而我们优化完的执行计划由于索引的存在,且表内数据非常大,过滤条件的值在一个很宽的统计信息步长范围内,导致估计行数出现较大偏差(过滤条件实际为15000行,步长内估计的平均行数为800行左右),因此查询优化器选择了Loop Join,且没有选择并行执行,因此执行时间不降反升. 由于语句是在存储过程中实现,因此我们直接对该语句使用一个undocument
-
w3wp进程发生死锁ISAPI aspnet_isapi.dll报告它自身有问题,原因Deadlock detected
这个问题,字面意思是程序发生死锁了,它会导致w3wp进程重启.通常这个问题不好查到原因.我知道两个可能导致此问题的实例 1. 在程序中使用了lock或者ReaderWriterLock,锁资源发生了争用 下面是一小段代码: 复制代码 代码如下: //_rwLock的类型是ReaderWriterLock _rwLock.AcquireWriterLock(100); DoSomething(); _rwLock.ReleaseWriterLock(); 这行代码是有问题的,如果在DoSometh
-
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error
复制代码 代码如下: 1.调用模板中的判断语句不正确. 2.调用php或SiteEngine的一些函数不正确. 3.一些单引号或双引号引起的问题.
-
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
今天在写PHP程序的时候总是出现这样的错误:Parse error: syntax error, unexpected end of file in *.php on line *,然后我就根据提示,找到那个文件,然后错误中总是提示最后一行出错,我找到最后一行发现是</html>,晕的,这能有什么错误,找了好久才找到问题所在,拿来分享. 出现这个错误的原因就是语法错误,肯定是PHP程序的书写不规范造成,我后来一条一条看才发现,原来是PHP语句标识符错了,正常情况下应该是这样的:<?php
-
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
这几天写php程序,感觉很多地方不如asp,asp.Net,jsp顺手,比如session使用先得session_start();,文件跳转header用的也不方便.... 也许是不熟悉的php的一些特性吧,不过写多了,也就慢慢适应将就了..... 这里就整理一个代码编写调试问题,错误如下: Parse error: syntax error, unexpected $end in D:\xampp\htdocs\guestBook\guestBook.php on line 330 看看程序
-
jQuery选中select控件 无法设置selected的解决方法
解决办法:把选中option的语句放到setTimeout中,例: 复制代码 代码如下: setTimeout(function() { var selSorts = $("select[id^='" + controls.selsort + "']"); $.each(selSorts, function(index, sort) { var ope = $(sort).find("option[value='" + arrSort[index
-
C++中的三种继承public,protected,private详细解析
三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 private 继承 组合结果 基类中 继承方式 子类中 public & public继承 => public public & protected继承 => protected public & private继承 = > private protected &am
-
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
其实,这是一个非常容易解决掉的问题.在我看来,似曾相识,呵呵,最近学JavaScript可是学会了使用var声明变量. 其实,在PHP中根本不需要使用var声明的,但是当一个变量作为一个类的成员变量的时候,使用var还是没有问题的. 在外部使用var就报错Parse error: syntax error, unexpected T_VAR in...,例如我的出错信息: Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\ht
-
在sqlserver中如何使用CTE解决复杂查询问题
最近,同事需要从数个表中查询用户的业务和报告数据,写了一个SQL语句,查询比较慢: Select S.Name, S.AccountantCode, ( Select COUNT(*) from ( Select Distinct BusinessBackupId from Biz_BusinessBackupCustomer where Id in ( Select BusinessBackupCustomerId from Rpt_RegistForm where ( SignatureCP
-
jQuery中:selected选择器用法实例
本文实例讲述了jQuery中:selected选择器用法.分享给大家供大家参考.具体分析如下: 此选择器能够匹配被选择的<option>元素. 语法结构: 复制代码 代码如下: $(":selected") 此选择器可以和其他选择器配合使用,比如类选择器.元素选择器等等.例如: 复制代码 代码如下: $(".myselect :selected").css("color","red") 以上代码能够将类名为myse
-
深入理解C++中public、protected及private用法
初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容易搞糊涂.今天本文就来十分分析一下C++中public.protected及private用法.相信对于大家深入掌握C++程序设计会有很大的帮助. 这里我们首先要明白下面几点. 1.类的一个特征就是封装,public和private作用就是实现这一目的.所以: 用户代码(类外)可以访问public成员而不能访问private成员:private成员只能由类成员(类内)和友元访问.
-
php iconv() : Detected an illegal character in input string
开始是这样用的$str = iconv('UTF-8', 'GB2312', unescape(isset($_GET['str'])? $_GET['str']:''));上线后报一堆这样的错:iconv() : Detected an illegal character in input string 考虑到GB2312字符集比较小,换个大的吧,于是改成GBK:$str = iconv('UTF-8', 'GBK', unescape(isset($_GET['str'])? $_GET['
随机推荐
- Backbone.js中的集合详解
- Spring AOP的实现原理详解及实例
- jquery的键盘事件修改代码
- json传值以及ajax接收详解
- 浅析JavaScript 箭头函数 generator Date JSON
- 利用PL/SQL从Oracle数据库导出和导入数据
- iOS利用Block逆向传值的方式详解
- javascript控制层显示或隐藏的方法
- 纯JS实现图片验证码功能并兼容IE6-8(推荐)
- JS中用三种方式实现导航菜单中的二级下拉菜单
- php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
- php找出指定范围内回文数且平方根也是回文数的方法
- 对MySQL配置参数 my.ini/my.cnf的详细解析
- JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
- Android中怎样避免创建不必要的对象
- C++求阶乘的两种方法
- 在安装平台前,如果使用了SCW(安全配置向导)会造成出错
- Nginx和Apache几种防盗链配置方法实例
- Java环境变量配置教程
- Java实现短信验证码和国际短信群发功能的示例