点找回密码,输入用户名,邮箱后,发系统信件至邮件,从邮箱里转回的链接,开始找回密码,在输入密码的时候,会出现,尽管你重复密码是输入的一样,但是还是会提示输入的不一样.
第一个问题:这是第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的原因就是要它忽略原始密码.
问题到这里完美解决了。 总结
以上是内存溢出为你收集整理的phpcms整合Ucenter找回密码无效的解决方法全部内容,希望文章能够帮你解决phpcms整合Ucenter找回密码无效的解决方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)