欢迎来到361模板(www.ke361.com),原创精品织梦模板提供商。QQ快速注册登录 网站托管 VIP 网站定制

织梦模板

当前位置:织梦模板 > 技术文档 > 网站技巧 > DedeCMS会员通过邮箱找回密码的完善解决办法
这篇文章主要为大家详细介绍了DedeCMS会员通过邮箱找回密码的完善解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

DedeCMS会员通过邮箱找回密码的完善解决办法

首先打开文件:/member/resetpassword.php 这是织梦会员找回密码的核心文件!

在148行有这么一句: showmsg('对不起,临时密码错误', '-1');   看来问题就在这了! 解决办法如下:

DedeCMS会员通过邮箱找回密码的完善解决办法

从125行往下看:

if(isset($key)) $pwdtmp = $key;
                $sn = md5(trim($pwdtmp));
                if($row['pwd'] == $sn)
                {
                        if($pwd != "")
                        {
                                if($pwd == $pwdok)
                                {
                                        $pwdok = md5($pwdok);
                                        $sql = "DELETE FROM `dede_pwd_tmp` WHERE `mid` = '$id';";
                                        $db->executenonequery($sql);
                                        $sql = "UPDATE `dede_member` SET `pwd` = '$pwdok' WHERE `mid` = '$id';";
                                        if($db->executenonequery($sql))
                                        {
                                                showmsg('更改密码成功,请牢记新密码', 'login.php');
                                                exit;
                                        }
                                }
                        }
                        showmsg('对不起,新密码为空或填写不一致', '-1');
                        exit;
                }
                showmsg('对不起,临时密码错误', '-1');
                exit;

这段代码的意思是: 如果 row['pwd' 等于 $sn , 则修改密码成功, 如果不等于 就提示:“对不起,临时密码错误”

看来问题出在$pwdtmp 这个字段上, 这个字段值来自前台resetpassword2.htm

<?php if(empty($key)){ ?>
                <li><span>临时验证码:</span>
                    <input name='pwdtmp' type="password"/>
                </li>
                <?php }else{ ?>
                <input name="key" type="hidden" value="<?php echo $key;?>"/>
                <?php }?>

代码看到这也许有人就晕了, 又出了一个字段:$key, 这段代码的意思是:如果key为空 显示:  <input name='pwdtmp' type="password"/> ,如果不为空 显示 :<input name="key" type="hidden" value="<?php echo $key;?>"/>

看来根源问题就是$key, key值是系统发送给会员邮件的一个字段,打开文件:/member/inc/inc_pwd_functions.php 找到:

function newmail($mid, $userid, $mailto, $type, $send)
{
        global $db,$cfg_adminemail,$cfg_webname,$cfg_basehost,$cfg_memberurl;
        $mailtime = time();
        $randval = random(8);
        $mailtitle = $cfg_webname.":密码修改";
        $mailto = $mailto;
        $headers = "From: ".$cfg_adminemail."\r\nReply-To: $cfg_adminemail";
        $mailbody = "亲爱的".$userid.":\r\n您好!感谢您使用".$cfg_webname."网。\r\n".$cfg_webname."应您的要求,重新设置密码:(注:如果您没有提出申请,请检查您的信息是否泄漏。)\r\n本次临时登陆密码为:".$randval." 请于三天内登陆下面网址确认修改。
        \r\n".$cfg_basehost.$cfg_memberurl."/resetpassword.php?dopost=getpasswd&id=".$mid."&key=".$randval;

原文件是没有用传递key值,需要加上&key=".$randval,问题就解决了,到此会员就可以通过邮件找回密码了!

以上就是DedeCMS会员通过邮箱找回密码的完善解决办法的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持361模板网。

感谢打赏,我们会为大家提供更多优质资源!

热词标签: 找回密码 邮箱

上一篇DEDE织梦CMS模板在runphp=yes的标签中调用其他field值的方法

下一篇织梦dedecms搜索页面单独调用搜索结果条数的实现方法

取消

感谢您的支持,我们会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by361模板网,分享从这里开始,精彩与您同在