我正在为我的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;
答案 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
,将其转换为适合网址的值。