Disallowed Key Characters(转)
CodeIgniter Disallowed Key Characters 怎么回事?
相信很多人遇到 Disallowed Key Characters 这样的问题,即使是在访问 CSDN 的时候,因为 CSDN 的那部分网页是用 CI 写的,这个问题就出在 CI 的处理提交字符串的类上面。即使只是输入域名。没什么特殊字符,这问题还是如影随形,为什么呢?
这和 CI 的字符串处理类设计有关,是这样的,通过get、post方法提交的字符串,CI 都交给 system/core/Input.php 这个类去处理,那很多人就问了,看url并没有特殊符号,为什么也报这样的错误,因为你忽略了一点,cookie 和 session 传输的字符串,也是由这个类统一处理的,也就是说,get、post、cookie、session 的数据都是由这个类处理的,问题往往也出现在 cookie 和 session 上面,所以网上有很多人提供方法就是,清除一下缓存和 cookie ,确实就没问题了,但是隔一段时间就又有问题了,因为新生成的 cookie 里面含有不被匹配通过的字符串,该怎么解决呢?
解铃还需系铃人,既然问题出现在 Input.php 这个类上面,就修改他就好,把 _clean_input_keys 方法:
- 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;
- }
改为:
- function _clean_input_keys($str)
- {
- /*if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
- {
- exit('Disallowed Key Characters.');
- }*/
- $config = &get_config('config');
- if (!emptyempty($config['permitted_uri_chars']))
- {
- if ( ! preg_match("/^[".$config['permitted_uri_chars']."]+$/i", rawurlencode($str)))
- {
- exit('Disallowed Key Characters.');
- }
- }
- // Clean UTF-8 if supported
- if (UTF8_ENABLED === TRUE)
- {
- $str = $this->uni->clean_string($str);
- }
- return $str;
- }
然后把 config/config.php 里面的:
- $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
改为:
- $config['permitted_uri_chars'] = '';
即可
自此问题解决,不懂的朋友可以理解一下上面这几段代码,希望有所帮助。
问题来源:http://codeigniter.org.cn/forums/thread-3599-1-1.html
转载于:https://www.cnblogs.com/xingmeng/archive/2013/04/10/3013129.html
Disallowed Key Characters(转)相关推荐
- CI报Disallowed Key Characters的解决
用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示.有人说 url 里有非法字符.但是确定 url 是纯英文的,问题还是出来了.但清 ...
- 雷林鹏分享:解决CI框架的Disallowed Key Characters错误提示
用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示.有人说 url 里有非法字符.但是确定 url 是纯英文的,问题还是出来了.但清 ...
- 解决CI框架的Disallowed Key Characters错误提示
用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示.有人说 url 里有非法字符.但是确定 url 是纯英文的,问题还是出来了.但清 ...
- linux中curl 访问接口返回:“Disallowed Key Characters ”(php CI框架)
解决 CodeIgniter 框架应用中,出现Disallowed Key Characters错误提示的方法.找到core文件夹下的Input文件,将下面的代码: function _clean_i ...
- php ci 框架 扩展缓存类,CodeIgniter扩展核心类实例详解
本文实例讲述了CodeIgniter扩展核心类的方法.分享给大家供大家参考,具体如下: CI中对核心类.辅助类和函数的扩展是相当方便的,配置文件中指定了subclass_prefix扩展前缀,默认为M ...
- BlackBerry 应用程序开发者指南 第一卷:基础--第7章 使用数据报(Datagram)连接...
作者:Confach 发表于2006-04-28 21:42 pm 版权信息:可以任意转载, 转载时请务必以超链接形式标明文章原始出处 和作者信息. http://www.cnblogs.com/co ...
- python sendline,python pexpect sendcontrol关键字符
I am working with pythons pexpect module to automate tasks, I need help in figuring out key characte ...
- java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件
获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...
- AtoZ CSS快速提示:对文本使用OpenType
This article is a part of our AtoZ CSS Series. You can find other entries to the series here. You ca ...
最新文章
- 手撕设计模式之「工厂方法模式」(Java描述)
- leetcode-1-两数之和
- 使用 CORBA 和 Java IDL
- 【ASP.NET Web API教程】2.3.5 用Knockout.js创建动态UI
- Android实现mp3分析,Android编程实现播放MP3功能示例
- TLStorm:APC UPS 存在零点击0day,可远程烧毁设备、切断电源
- Struts2-Value Stack浅析
- python3.1415926_Python3中操作字符串str必须记住的几个方法
- csgo准星设置代码_csgo准星参数代码
- JESD204B调试4
- 专访雪球网技术团队:用Node.js做前端的类SOA架构
- 一阶导数和二阶导数的二阶/四阶中心差分格式
- 汽车外饰胶市场现状及未来发展趋势
- 小程序 云开发 数据库操作
- 批量打印--不展现直接后台打印
- Python数据存储的两种TXT、JSON格式
- 转JavaScript的语法解析与抽象语法树
- ChatGPT实现编程语言转换
- 计算机专业英语试题2,计算机专业英语试题2
- 计算机和材料学的关系,考研专业解析系列之材料科学与工程专业
热门文章
- HttpClient 入门与正确使用姿势
- nagios监控mysql服务_nagios监控mysql服务
- ShardingSphere JDBC 语句执行初探
- 全民一起玩python课件_全民一起玩Python课基础+提高篇[免费学习]
- html ul高度自适应,如何让div中的ul元素自适应
- mysql 1129 错误Host is blocked because of many connection errors; unblock with 'mysqladmin flush-host
- 腾讯地图api-地图展示map和覆盖物(标记)
- nginx ---- 配置成系统服务
- 动态分区分配算法代码_【代码】巩敦卫等TEVC论文:基于区间相似度分析的协同动态区间多目标进化优化算法...
- java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香么!...