The URI you submitted has disallowed characters.
同样的代码,同样的数据库,我在服务器上使用没有任何问题。下载到本地后除了首页以外的其它页面,都会提示:The URI you submitted has disallowed characters.但是我的URI确实没问题,像这样:http://localhost/arc/show/learn
哪位知道这是什么原因吗? 有没有可能是你本地文件的编码问题?因为gbk和utf-8在很多情况下看起来并没有什么区别~~猜测而已,仅供参考 明显是环境问题。
建议用 XAMPP。 回复 3# Hex
我用的就是xampp。看来我重装一下xampp算了。谢谢~~ 我无语啊,xampp完全 卸了重装还是不行。 我也出现这种问题啊,郁闷中。。。 本地跑的话,url参数中有中文放在ie中运行会有问题,lz试试google浏览器。
解决办法:urldecode($this->uri->segment ( × )) 我的url里没有任何非法参数也会报这个错,下面的解决方法非常有用,
CodeIgniter的URL传过来的汉字参数中文参数有错误的处理。会显示The URI you submitted has disallowed characters.
一般网上的办法是替换_filter_uri函数,但是试过,不知道为什么CodeIgniter没重载这个函数。
那这样只能修改源代码了。看别人是用urlencode做的。感觉这样做,很别扭。
阅读了一下CodeIgniter的代码,发现它是用preg_quote把permitted_uri_chars做了预处理,然后再进行正则匹配。这有点自作聪明了,还不如直接就把这一下作为一个完整的正则语句来的方便。
既然要动原代码,那就改的彻底点!做如下修改:
config.php改为:$config['permitted_uri_chars'] = ‘|^+$|iu’;
URI.php改为:if ( ! preg_match($this->config->item(‘permitted_uri_chars’), $str))
转自:http://www.wintop.org/216/codeigniter%E7%9A%84url%E4%BC%A0%E8%BF%87%E6%9D%A5%E7%9A%84%E6%B1%89%E5%AD%97%E5%8F%82%E6%95%B0%E4%B8%AD%E6%96%87%E5%8F%82%E6%95%B0%E5%A4%84%E7%90%86%E9%94%99%E8%AF%AF%E7%9A%84%E4%BF%AE%E5%A4%8D.html
页:
[1]