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 方法:

  1. function _clean_input_keys($str)
  2. {
  3. if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
  4. {
  5. exit('Disallowed Key Characters.');
  6. }
  7. // Clean UTF-8 if supported
  8. if (UTF8_ENABLED === TRUE)
  9. {
  10. $str = $this->uni->clean_string($str);
  11. }
  12. return $str;
  13. }

改为:

  1. function _clean_input_keys($str)
  2. {
  3. /*if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
  4. {
  5. exit('Disallowed Key Characters.');
  6. }*/
  7. $config = &get_config('config');
  8. if (!emptyempty($config['permitted_uri_chars']))
  9. {
  10. if ( ! preg_match("/^[".$config['permitted_uri_chars']."]+$/i", rawurlencode($str)))
  11. {
  12. exit('Disallowed Key Characters.');
  13. }
  14. }
  15. // Clean UTF-8 if supported
  16. if (UTF8_ENABLED === TRUE)
  17. {
  18. $str = $this->uni->clean_string($str);
  19. }
  20. return $str;
  21. }

然后把 config/config.php 里面的:

  1. $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

改为:

  1. $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(转)相关推荐

  1. CI报Disallowed Key Characters的解决

    用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示.有人说 url 里有非法字符.但是确定 url 是纯英文的,问题还是出来了.但清 ...

  2. 雷林鹏分享:解决CI框架的Disallowed Key Characters错误提示

    用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示.有人说 url 里有非法字符.但是确定 url 是纯英文的,问题还是出来了.但清 ...

  3. 解决CI框架的Disallowed Key Characters错误提示

    用CI框架时,有时候会遇到这么一个问题,打开网页,只显示 Disallowed Key Characters 错误提示.有人说 url 里有非法字符.但是确定 url 是纯英文的,问题还是出来了.但清 ...

  4. linux中curl 访问接口返回:“Disallowed Key Characters ”(php CI框架)

    解决 CodeIgniter 框架应用中,出现Disallowed Key Characters错误提示的方法.找到core文件夹下的Input文件,将下面的代码: function _clean_i ...

  5. php ci 框架 扩展缓存类,CodeIgniter扩展核心类实例详解

    本文实例讲述了CodeIgniter扩展核心类的方法.分享给大家供大家参考,具体如下: CI中对核心类.辅助类和函数的扩展是相当方便的,配置文件中指定了subclass_prefix扩展前缀,默认为M ...

  6. BlackBerry 应用程序开发者指南 第一卷:基础--第7章 使用数据报(Datagram)连接...

    作者:Confach 发表于2006-04-28 21:42 pm 版权信息:可以任意转载, 转载时请务必以超链接形式标明文章原始出处 和作者信息. http://www.cnblogs.com/co ...

  7. python sendline,python pexpect sendcontrol关键字符

    I am working with pythons pexpect module to automate tasks, I need help in figuring out key characte ...

  8. java读取文件 路径_Java中的获取文件的物理绝对路径,和读取文件

    获取文件的绝对路径,读取该文件 一.文件目录打印图 下面的文件目录图,是项目中文件的位置信息:下面的例子是按照这个图来演示的. . |-- java | |-- ibard | | |-- demo1 ...

  9. AtoZ CSS快速提示:对文本使用OpenType

    This article is a part of our AtoZ CSS Series. You can find other entries to the series here. You ca ...

最新文章

  1. 手撕设计模式之「工厂方法模式」(Java描述)
  2. leetcode-1-两数之和
  3. 使用 CORBA 和 Java IDL
  4. 【ASP.NET Web API教程】2.3.5 用Knockout.js创建动态UI
  5. Android实现mp3分析,Android编程实现播放MP3功能示例
  6. TLStorm:APC UPS 存在零点击0day,可远程烧毁设备、切断电源
  7. Struts2-Value Stack浅析
  8. python3.1415926_Python3中操作字符串str必须记住的几个方法
  9. csgo准星设置代码_csgo准星参数代码
  10. JESD204B调试4
  11. 专访雪球网技术团队:用Node.js做前端的类SOA架构
  12. 一阶导数和二阶导数的二阶/四阶中心差分格式
  13. 汽车外饰胶市场现状及未来发展趋势
  14. 小程序 云开发 数据库操作
  15. 批量打印--不展现直接后台打印
  16. Python数据存储的两种TXT、JSON格式
  17. 转JavaScript的语法解析与抽象语法树
  18. ChatGPT实现编程语言转换
  19. 计算机专业英语试题2,计算机专业英语试题2
  20. 计算机和材料学的关系,考研专业解析系列之材料科学与工程专业

热门文章

  1. HttpClient 入门与正确使用姿势
  2. nagios监控mysql服务_nagios监控mysql服务
  3. ShardingSphere JDBC 语句执行初探
  4. 全民一起玩python课件_全民一起玩Python课基础+提高篇[免费学习]
  5. html ul高度自适应,如何让div中的ul元素自适应
  6. mysql 1129 错误Host is blocked because of many connection errors; unblock with 'mysqladmin flush-host
  7. 腾讯地图api-地图展示map和覆盖物(标记)
  8. nginx ---- 配置成系统服务
  9. 动态分区分配算法代码_【代码】巩敦卫等TEVC论文:基于区间相似度分析的协同动态区间多目标进化优化算法...
  10. java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香么!...