WordPress遇到qq邮箱不能注册,不能重置密码问题(您的密码重设链接无效,请在下方请求新链接。)

使用qq邮箱注册WordPress系统会接收到一封带超链接的邮件。我们使用qq作为用户名,如下所示:
用户名:qq

要设置您的密码,请访问以下地址:

<http://localhost/wp/wp-login.php?action=rp&key=z6lR9lnf1AiI5H030hrN&login=qq>;

http://localhost/wp/wp-login.php

点击设置密码链接之后会出现如下界面:
提示“您的密码重设链接无效,请在下方请求新链接。”
实际上WordPress发送的链接没有问题,问题出在qq邮箱在处理带有“http://”的超链接时会把其中的原字符转换成转义字符,例如:把“&”转换成“&”,把“>”转换成“>”。于是就导致了链接无效,这是qq邮箱的一个BUG,使用163邮箱就不会发生这种问题。


解决办法:
将链接中的“http://”删除。
有两个文件的代码需要修改:wp-login.php和wp-includes/pluggable.php。
wp-login.php文件中的代码用于找回密码,wp-includes/pluggable.php文件中的代码用于新用户注册。

1.修改WP根目录下的 wp-login.php文件 

$message .= '<' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . ">\r\n";
修改为:
$message .= str_replace("http://", "", network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . "\r\n");
2.WP安装目录下的/wp-includes/pluggable.php文件 
将:
$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . ">\r\n\r\n";
修改为:
$message .= str_replace("http://", "", network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . "\r\n\r\n");
即两个文件代码去掉左右的<>,并将"http://"替换为空

修改成功后收到的邮件没有“http://”,需要将链接复制到浏览器的地址栏进行访问。链接如下所示:

 

localhost/wpen/wp-login.php?action=rp&key=rxSjoNa8uRBpyFtWaYUr&login=qq

 

 

作者:百度ScholarID:CN-B975GTLJ   刘老师

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值