CodeIgniter Disallowed Key Characters.


 CodeIgniter 是什么?

  • 你想要一个小巧的框架。
  • 你需要出色的性能。
  • 你需要广泛兼容标准主机上的各种 PHP 版本和配置。
  • 你想要一个几乎只需 0 配置的框架。
  • 你想要一个不需使用命令行的框架。
  • 你想要一个不需坚守限制性编码规则的框架。
  • 你对 PEAR 这种大规模集成类库不感兴趣。
  • 你不希望被迫学习一门模板语言(虽然可以选择你喜欢的模板解析器)。
  • 你不喜欢复杂,热爱简单。
  • 你需要清晰、完善的文档。

CodeIgniter@飞鱼 @给 @余果 又@给我的

 

(庙) miao.in 是基于 CodeIgniter 开发

改造大概花了个把小时,因为(庙)实在是太简单的网站

 

Disallowed Key Characters.

突然有一天出现了 Disallowed Key Characters. 这个错误,满 Google 都在说,你的 cookie 出现了非法字符

干,老子还没用到 Cookie 呢

打开Chrome调试器发现有个 Cookie 的

Key: 1345466626|7601294|43373|0|0|0

然后用 Intellij IDEA 搜了一下 “Disallowed Key Characters”

system/core/Input.php line 603

写着

if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) { exit('Disallowed Key Characters.'); }

日哦,身为正则小王子的大猫一看眼泪都流下来

改成了

PS,这”|”不可写到”-“后面,懂的自然懂,不懂照着改

 

那么这个带”|”的 Cookie 哪里来的呢?

电·信·弹·窗·广·告,我·干·里·良!

此 BUG 已经提交官方修复

github 上提交了,原作者脚的有道理,就合并修复了,新版本应该没啥问题


《 “CodeIgniter Disallowed Key Characters.” 》 有 20 条评论

  1. 今天也遇到了这个问题……在 config 里开启了 CSRF 。

    然后在 form 里手动插入 CSRF 的 input ,一提交就遇到这个错误提示了。后来将 form 标签改为 form_open() 就解决了,后者会自动插入可用的 CSRF 的 Input 。

    P.S. 页面导读 #fn_article_nav 一直插入到了评论框,不太美观……

  2. 求解 | 为什么不能放在 – 后面… 试了一下也没啥问题啊,google也无果

回复 bigCat 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注