url链接中出现%27错误

时间:2014-05-28 05:51:02

标签: php mysql url

当用户注册到我的网站并且激活链接被发送到他们的电子邮件时...它显示找不到页面错误

orignal激活链接

http://tc14.wceeesa.org/activate.php?email='akshaypp%40mail.com'&key='d6433fa355d81e942b3ba0b845de089e'

它的节目如

tc14.wceeesa.org/activate.php?email= **%27** akshaypp%40mail.com **%27** &key= **%27** d6433fa355d81e942b3ba0b845de089e **%27**

告诉我如何修复此代码....并删除%27%以获取链接

我的PHP代码

$message = "To Activate your account, please click on this link: \n \n";
$message .= "http://tc14.wceeesa.org/activate.php?email='".urlencode($email)."'&key='".$activation."'";
mail($email,'Activation of your EESA Account',$message);

3 个答案:

答案 0 :(得分:4)

永远不要在网址中加引号,你可以使用分隔线破折号或下划线,如果不需要分隔符,则不要使用。

而不是

http://tc14.wceeesa.org/activate.php?email='blah@blah.com'

使用

http://tc14.wceeesa.org/activate.php?email=blah@blah.com   // quotes removed !

或在您的PHP中

$message .= "http://tc14.wceeesa.org/activate.php?email=".urlencode($email)."&key=".$activation;   //without '

答案 1 :(得分:0)

从参数中删除引号。您不需要将参数括在引号中,因为参数名称本身标识了值($_GET['key']将显示参数键的值)。

$message .= "http://tc14.wceeesa.org/activate.php?email=".urlencode($email)."&key=".$activation;

答案 2 :(得分:0)

问题是您使用''封闭了参数。使用GET方法时不需要这样做。

固定代码如下:

$message = "To Activate your account, please click on this link: \n \n";
$message .= "http://tc14.wceeesa.org/activate.php?email=".urlencode($email)."&key=".$activation."";
mail($email,'Activation of your EESA Account',$message);

神秘的 %27代码进行更多解释。当您将字符串$message翻译成网址时,special symbolsconverted进入网址友好表达式。表达式%27代表'