激活密钥中的问题,使用php

时间:2011-04-24 15:05:06

标签: php email format key activation

我正在为我的wordpress安装使用自定义登录脚本。一切正常,但激活密钥以下列格式发送给注册用户时除外:

http://mydomain.com/?page_id=1278&mail=user@email.com&activate_key=7edbad

当用户点击上述链接时,电子邮件中的“@”会消失,因此会显示激活密钥无效的错误。

有人可以指导我吗?

这是将激活链接放在一起的一段代码:

$link=get_option('home').'/?page_id='.$pageid.'&mail='.$user_email.'&activate_key='.$key;

3 个答案:

答案 0 :(得分:1)

您可能需要使用每个参数值的urlencode()函数对该URL中的参数进行编码:

$link=get_option('home')
            .'/?page_id='.urlencode($pageid)
            .'&mail='.urlencode($user_email)
            .'&activate_key='.urlencode($key);


作为替代方案,您还可以使用http_build_query()一次来构建整个查询字符串:

$params = array(
    'page_id' => $pageid, 
    'mail' => $user_email, 
    'activate_key' => $key, 
);
$query_string = http_build_query($params);

$link=get_option('home') . '/?' . $query_string;

答案 1 :(得分:0)

在GET参数上尝试urlencode()

答案 2 :(得分:0)

urlencode()周围尝试$user_email,将其转换为适合网址的值。