phpcms整合Ucenter找回密码无效的解决方法
发布时间:2020-12-14 03:45:00 所属栏目:Dedecms 来源:网络整理
导读:今天出现怪异现象整了一小会儿,汗,分享出来,免得以后同仁遇到一样的问题,再耽误时间。 点找回密码,输入用户名,邮箱后,发系统信件至邮件,从邮箱里转回的链接,开始找回密码,在输入密码的时候,会出现,尽管你重复密码是输入的一样,但是还是会提示输入的不一
今天出现怪异现象整了一小会儿,汗,分享出来,免得以后同仁遇到一样的问题,再耽误时间。 点找回密码,输入用户名,邮箱后,发系统信件至邮件,从邮箱里转回的链接,开始找回密码,在输入密码的时候,会出现,尽管你重复密码是输入的一样,但是还是会提示输入的不一样. 第一个问题:这是第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, 解决方法: 第一步: 根目录membergetpwd.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'; } 第二步: 根目录 memberapipassport_server_ucenter.php 文件第121行 uc_call("uc_user_edit",array($username,$old_password,$new_password,$email)); 修改为 uc_call("uc_user_edit",$email,1)); 这里改为1的原因就是要它忽略原始密码. 问题到这里完美解决了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |