ci参数.被自动替换为_的问题
本帖最后由 wintion 于 2010-3-26 17:20 编辑问题缘由:
需要在通过url传email地址,可是email地址的某些字符被替换掉。
请求的uri如下(实际情况下已经做了urlencode转义):
user/register/abc@gmail.com
在ci根目录下的index.php首行加入调试,输出如下(请注意:点号被替换为下划线了):
<?php
echo $_SERVER['REQUEST_URI'];//输出/user/register/abc@gmail.com
print_r($_GET);//输出Array ( => )
?>
可是,index.php应该是ci接受请求的入口处,我把该输出操作位于ci的处理最开始的地方,可是字符串还是被替换了,百思不得其解,还望高人指点 本帖最后由 ywqbestever 于 2010-3-26 16:09 编辑
去掉CI过滤.呗
不建议你这样传参额 urlencode() 本帖最后由 wintion 于 2010-3-26 17:06 编辑
也有可能是我个人理解错了,不过视乎没有这么简单,ci里面router、uri基类包含有replace字样的函数都过了一遍。
urlencode肯定是加了的,这是phper的常识
至于这个是不是个问题,你可以想象这个参数是个float类型数据,这个时候小数点也是被替换为下划线的,大家觉得还有必要解决吗?
我现在想到的办法是,暂时把.替换为^然后再urlencode再传,然后再反转 本帖最后由 zycbob 于 2010-3-31 17:24 编辑
您是啥意思?
改下config$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-@'; //最后加上@
我这里可以
页:
[1]