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

[HELP] redirect专递参数会自动转义么?

[复制链接]
发表于 2010-9-21 10:31:02 | 显示全部楼层 |阅读模式
自己用的项目里我喜欢使用redirect,但是现在遇到个问题就是
redirect(controller/function/参数1/参数2/参数3);
当我的参数里面的值有的带(),括号的时候,在跳转到我的那个方法后,括号包括括号里的值全部被转成了一个&符号,这个问题要怎么办啊?
因为参数都是页面传过来的。。如果参数写死,里面有括号的话却不会被转义,但是如果写成一个变量的话就会被自动给转掉了。。。
 楼主| 发表于 2010-9-21 10:34:09 | 显示全部楼层
本帖最后由 zhouli520 于 2010-9-21 10:35 编辑
PHP复制代码
 
function toManagePage($lang=1,$cid,$cname=null,$ccname=null,$ccid=0,$title=null,$pid=0,$cn=null){
$data['url'] = ' >> <a href="'.base_url().'index.php/admin/category/2">Manage Page</a> >> <a href="'.base_ur().'index.php/category/index/'.$lang.'/'.$cname.'/'.$cid.'">'.$cname.'</a> >> <a href="'.base_ur().'/index.php/page/index/'.$lang.'/'.$cid.'/'.$cname.'/'.$ccname.'/'.$ccid.'">'.$ccname.' Page</a> >> <a href="'.base_url().'index.php/page/toManagePage/'.$lang.'/'.$cid.'/'.$cname.'/'.$ccname.'/'.$ccid.'/'.$title.'/'.$pid.'">'.$title.' Page Manage</a> >> Edit '.$action.'';
 
$this->load->view('admin/managePage',$data);
}
 
function editManagePage($lang=1,$cid,$cname=null,$ccname=null,$ccid=0,$title=null,$pid=0,$action=null){
redirect('page/toManagePage/'.$lang.'/'.$cid.'/'.$cname.'/'.$ccname.'/'.$ccid.'/'.$title.'/'.$pid);
}
 
//editManagePage是处理修改方法,修改成功后就转向toManagePage方法,但是title传到toManagePage方法的时候带括号参数的参数里的括号就被转成&符号了
 
复制代码
发表于 2010-9-21 12:28:16 | 显示全部楼层
本帖最后由 sonic 于 2010-9-21 12:29 编辑


你好。我觉得如果需要传递特殊字符参数到某个方法。
如果是同一个控制器下的
那么在需要调用的方法里面,可以调用$this->to_func_name($parm_1,$parm_2);

使用redirect的话。因为是作为URL跳过去。会屏蔽一些特殊字符的。
所以如果可以写到一个控制器的话,
但是如果你的目的方法里面没有什么参数
可以使用redirect(),也推荐redirect()
 楼主| 发表于 2010-9-21 13:08:59 | 显示全部楼层

回复: redirect专递参数会自动转义么?

这个直接在控制器里调用我也知道,但是这样的话会造成一个问题就是如果我刷新页面会造成重复提交,修改还好,如果是添加的话,我刷新一次页面就会提交一次……所以一般增删改我都是redirect来跳转…

发送自我的 Milestone 大板凳
发表于 2010-9-21 14:38:34 | 显示全部楼层
我想你要跳过去的页面已经是一个回执页面了。
也就是 在 增删改之后的显示成功信息的页面
这种页面需要接受很特殊的字符吗?
发表于 2010-9-21 14:43:04 | 显示全部楼层
或者你可以在用$this->to_fun_name($p1,$p2);
的方法中在最后跳转到你的成功页面
它会是这样
function to_fun_name($p1,$p2)
{
  // do someting...
  // and go on do ....
  ///go on....
  redirect('action_name/rec_ok','location');
  exit();
}
发表于 2010-9-26 17:50:09 | 显示全部楼层
回复 2# zhouli520
楼主考虑先
$this->session->set_flashdata($big_data);
回执页面再
$this->session->flashdata($big_data);
你看,这样好不?
CIer  发表于 2014-5-11 20:34:42
摇友振俘砒渣粮/////////////////现在好像都在用这个,效果还不错,分享给大家!

本版积分规则