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

[已解决] CI版本1.7.3发现一个网址传参BUG

[复制链接]
发表于 2011-3-18 17:12:52 | 显示全部楼层 |阅读模式
我通过网址传两个参数,第一个参数用ci的encode加密,第二个参数明码。例如下面网址
http://xx.com/project/edit/ADA=/18
结果,我在控制器里无法正常取到第二个参数。
难道是CI的bug?
请高手指点。
发表于 2011-3-18 19:28:15 | 显示全部楼层
请贴相关代码。
发表于 2011-3-18 22:42:01 | 显示全部楼层
想看下代码
 楼主| 发表于 2011-3-19 10:29:42 | 显示全部楼层
view层:
<td align="center"><a href="/project/edit/<?=$this->encrypt->encode($row->projid)?>/18">编辑</a></td>

controll层:

function edit($projid, $typeid)
{

  $tid = $typeid;  
//此处$tid的值应该为18,但实际却不是。
//我经过测试发现若加密后的projid是以“=”结尾的,例如“ADA=”,就会出现无法正确取值的情况。

}
发表于 2011-3-19 10:46:31 | 显示全部楼层
加密后有时会混合一些符号,你可以用urlencode转换一下编码
 楼主| 发表于 2011-3-19 11:34:12 | 显示全部楼层
回复 5# tiana


    对$this->encrypt->encode($row->projid)再进行urlencode是个解决方案,但encode两次,decode两次。
   不知有无更简单的解决方法?
发表于 2011-3-19 11:55:26 | 显示全部楼层
封装成一个函数或方法,一处修改,重复利用。
发表于 2011-3-19 12:47:09 | 显示全部楼层
$this->encrypt->encode()
这不是 urlencode,所以这里会出现“/”,所以你那里就出错了。
建议这样的使用 GET 传参,参考 google 的 URL。

本版积分规则