使用ci开发的一个应用,时不时有用户报如下错误:
Disallowed Key Characters
用户是在直接打开首页时报错,未带任何参数,也不存在post传值,于是怀疑是cookie的问题
于是修改libraries/input.php 219行,输出错误,
1 2 3 4 5 |
if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) { var_dump($str); exit('Disallowed Key Characters.'); |
在浏览里再打开时
string(20) “cnzz_a2336574&web_id”
Disallowed Key Characters
果然是cookie的问题,且含有&符号,怀疑是在其它二级域下设置了cookie,一起带过来了。
找到原因就好办了,在正则里增加&(这个字符应该不危险吧~~)
问题解决
转自互联网
还有这篇文章供参考:
http://ooxx.me/codeigniter-disallowed-key-characters.orz
总之,发现disallowed key characters这种问题时,应该首先排除cookie中的特殊字符问题