【发布时间】:2011-08-11 21:25:31
【问题描述】:
我正在为我的 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;
【问题讨论】:
-
PS:如果我手动将链接复制/粘贴到浏览器中,它可以正常工作。
-
我做了一个小测试并将激活链接转发到我的outlook(以消除它可能只是gmail的问题)。当以某种方式单击链接时,URL 会发生变化,并且“@”会消失,从而导致激活错误。
-
@Sledge,你浏览器地址栏中的@是不是?或者至少是 URL 编码的 %40?
-
是的,@ 在地址栏中。无论使用 url 编码和 http 构建建议的激活链接格式如何,都会导致 user@mail.com 或 user%40mail.com 在单击链接时 @ 或 %40 会消失,使其格式为 usermail.com
-
刚刚注意到这段代码..也许这与它有关? if (isset($_POST['email'])) $email=attribute_escape(strip_tags(stripslashes((trim($_POST['email'])))));elseif (isset($_GET['email']) ) $email=attribute_escape(strip_tags(stripslashes(strtolower(trim($_GET['email'])))));
标签: php email format key activation