我正在建立一个重置密码的系统,我需要在URL上传递电子邮件,如下所示:
http://example.com/reset?email=email@domain.com&token=89s8ads9
我这样做:
return $this->redirect(array(
'controller'=> 'site',
'action'=> 'resetaSenha',
'?'=> array('email'=> 'email=email@domain.com', 'token'=> 89s8ads9)
)
);
但是回来了:
http://example.com/reset?email=email%40domain.com&token=89s8ads9
答案 0 :(得分:0)
%40
是@ urlencoded。
代码中的某些内容正在将@转换为%40。 http://php.net/manual/en/function.urlencode.php
您可以使用urlencode($_GET['email']);
对其进行解码,这将用@
答案 1 :(得分:0)
我没有意识到,即使在网址上有?email = email%40domain,当我们从控制器访问$ this-> request-> query ['email']时,我们会获得以正确方式解码的电子邮件email@domain.com。
答案 2 :(得分:-2)
执行验证码检查,并在取消会话var后拒绝访问电子邮件发件人。