1

我正在为我的 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;
4

3 回答 3

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;
于 2011-04-24T15:07:27.757 回答
0

尝试urlencode()GET 参数。

于 2011-04-24T15:06:51.227 回答
0

尝试urlencode()$user_email其转换为对 URL 友好的值。

于 2011-04-24T15:07:36.493 回答