用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4547|回复: 6
收起左侧

[HELP] 还是Disallowed Key Characters.问题

[复制链接]
发表于 2011-9-23 16:19:11 | 显示全部楼层 |阅读模式
我的链接字符串是
location.href="http://192.168.0.110/index.php/winuser/delusers/?chkvalue="+chkvalue;
其中变量chkvalue的值是1|2|3|4|5|6
转到此地址后报错:Disallowed Key Characters.
我所用到的CI是2.0.3,在此之前我已根据手册启用查询字符串
PHP复制代码
$config['enable_query_strings'] = TRUE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
 
复制代码

我已按照论坛里所有类似情况的解决方案调试过,均无效,据我所知,好多好多人也存在这种问题,至今也无法解决!
发表于 2011-9-23 16:20:14 | 显示全部楼层
我也是这种问题····上一秒还好好的下一秒就悲剧了,求高手赐教啊
发表于 2011-9-23 19:00:36 | 显示全部楼层
可以用js编码
var str = encodeURIComponent($param);
在服务器端用urldecode()解码
如果是ajax的话,那就用post方法
 楼主| 发表于 2011-9-24 08:39:16 | 显示全部楼层
sunxch100 发表于 2011-9-23 19:00
可以用js编码
var str = encodeURIComponent($param);
在服务器端用urldecode()解码

我在控制器某方法里接收如何条用JS函数对其进行解码?
发表于 2011-9-24 18:02:35 | 显示全部楼层
zhaobin693 发表于 2011-9-24 08:39
我在控制器某方法里接收如何条用JS函数对其进行解码?

不是说了吗,用urldecode();
发表于 2011-9-24 18:14:14 | 显示全部楼层
zhaobin693 发表于 2011-9-24 08:39
我在控制器某方法里接收如何条用JS函数对其进行解码?

是不是chkvalue中的竖线不能通过输入检查,在Input.php下:
PHP复制代码
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;
        }
复制代码

如果可以的话,可以使用下划线_试下看看能不能通过,或者如上面所说,编码一次。
发表于 2011-11-2 15:52:04 | 显示全部楼层
zhaobin693 发表于 2011-9-24 08:39
我在控制器某方法里接收如何条用JS函数对其进行解码?

解码用urldecode(),php的函数

本版积分规则