|
从5.2.9升级到5.3.0
原因是5.3的mysql函数库接口使用了mysqlnd 直接访问数据库.
而不是通过libmysqld实现.理论上减少了副本存在于内存..也提高了存取效率...
刚升上来..就报The URI you submitted has disallowed characters.
找了下...原来preg_quote这个函数在5.2.9里面是不会对-进行转义的..所以CI默认的Config里面在-前面是有一个反斜线的...
看了下5.3的changelog
http://cn2.php.net/ChangeLog-5.php
PHP复制代码 //Fixed bug #47229 (preg_quote() should escape the '-' char). (Nuno) 复制代码
临时解决一下
/system/libraries/URI.php
189行
PHP复制代码 if ( ! preg_match("|^[".$this->config->item('permitted_uri_chars')."]+$|i", $str)) 复制代码
去掉preg_quote函数转义..不然a-z 0-9就变成 a\-z 0\-9了...
在config.php里面把转义手工加进去..
需要转义的字符以下几个
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : - |
|