phpcms整合Ucenter找回密码无效的解决方法

今天出现怪异现象整了一小会儿,汗,分享出来,免得以后同仁遇到一样的问题,再耽误时间。
点找回密码,输入用户名,邮箱后,发系统信件至邮件,从邮箱里转回的链接,开始找回密码,在输入密码的时候,会出现,尽管你重复密码是输入的一样,但是还是会提示输入的不一样. 
第一个问题:这是第1个问题,如果你没有遇到这问题,这段可以忽略掉,修改方法:找到templates/default/member/get_pwd.html文件里面的输入密码的输入框: 
<input type="password" name="password" id="password" require="true" datatype="limit" min="3" max="20" msg="密码长度必须大于3小于20" />
把name随便改一下不同与password的名称,我这里就改成reg_password了,就改成下面这样了 
<input type="password" name="reg_password" id="password" require="true" datatype="limit" min="3" max="20" msg="密码长度必须大于3小于20" /> 
加粗给以对比 
然后再找到确认密码的输入框: 
<input type="password" id="pwdconfirm" name="pwdconfirm" require="true" datatype="repeat" to="password" msg="两次输入的密码不一致" /> 
把to="password"中的password改成你在输入密码框那里改的名称: 
<input type="password" id="pwdconfirm" name="pwdconfirm" require="true" datatype="repeat" to="reg_password" msg="两次输入的密码不一致" /> 
然后再去member/getpwd.php里面找到 
if(!$member->match_authcode($userid, $authstr)) showmessage($LANG['verify_string_not_correct']); 
在它前面加上 
$password = $reg_password; 
好,第一个问题解决,接着 

第二个问题:提交后,提示成功,但是却不能修改密码, 
原因:在getpwd.php中所走的是$step = 4那段代码 大概在58行,也就是 
if(!$member->match_authcode($userid, $authstr)) showmessage($LANG['verify_string_not_correct']); 
这里,整合了UC后,所走的是 67行,但在这里虽然执行了,但是没能把值传给UC, 
解决方法: 
第一步: 
根目录\member\getpwd.php 
将代码(65行) 
if($PHPCMS['uc']) 
{ 
$action = 'editpwd'; 
require MOD_ROOT.'api/passport_server_ucenter.php'; 


修改为: 
if($PHPCMS['uc']) 
{ 
$username = $name; 
$new_password = $password; 
$action = 'editpwd'; 
require MOD_ROOT.'api/passport_server_ucenter.php'; 

第二步: 
根目录 \member\api\passport_server_ucenter.php 文件第121行 
uc_call("uc_user_edit", array($username, $old_password, $new_password, $email)); 
修改为 
uc_call("uc_user_edit", array($username, $old_password, $new_password, $email, 1)); 
这里改为1的原因就是要它忽略原始密码. 
问题到这里完美解决了。

转载于:https://my.oschina.net/joesoft/blog/520960

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值