php xdcms 重置密码,WordPress找回密码提示”您的密码重设链接无效,请在下方请求新链接。”解决办法...

您的密码重设链接无效,请在下方请求新链接。

这个问题产生的原因是发送的邮件里面有链接url,然后这个url被“<>”包住的,导致邮件解析出错。

样本如下:

出现这个问题原因是wordpress程序源码有个bug,源码加的有<>这两个符号,前面这个符号没关系。但是在后面的话,地址在邮箱中>会被认为是目标站点地址的一部分。

url后面的“>”符号没有被解析成entity而是添加到url中了,这样也就倒是login参数被多加了一个字符。于是导致wp-login程序返回一个错误提示“您的密码重设链接无效,请在下方请求新链接。”

访问过去后连接自然就不对。我们下面就是删掉这两个符号。

第一个文件:/wp-login.php

第二个文件:/wp-includes/pluggable.php

我们先打开第一个文件wp-login.php,编辑他的源码。

然后查找“wp-login.php?action=rp&key=”,然后我们会看到一个搜索结果。大概在369行,不同版本位置可能不一样。

原文件代码如下:$message.= '\r\n";

我们将其修改为:$message.=network_site_url("wp-login.php?action=rp&key=$key&login=" .rawurlencode($user_login), 'login') . "\r\n";

修改内容是network前面删除了 ‘即可。

接着我们修改第二个文件pluggable.php

查找“wp-login.php?action=rp&key=”,然后我们会看到一个搜索结果。大概在1899行。不同版本位置可能不一样。

原文件代码如下:$message.= 'user_login), 'login') . ">\r\n\r\n";

我们将其修改为:$message.=network_site_url("wp-login.php?action=rp&key=$key&login=" .rawurlencode($user->user_login), 'login') . "\r\n\r\n";

修改内容是network前面删除了 ‘

修改完以上两处文件保存后就可以了。博主测试没有问题。(提示:修改完记得保存)

修改后的效果图:

搞定问题,其实这个bug很久之前就有了,搞不明白为什么一直到现在还没被修复。

原创文章,作者:老D,如若转载,请注明出处:https://laod.cn/code-audit/wordpress-bug.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值