分享

DEDE会员找回密码的一个问题|DedeCMS 安装使用

 地图阿甘 2014-08-21

DEDE会员找回密码的一个问题


DEDE会员找回密码的一个错误当输入的用户名和邮箱不匹配时 输出了错误提示 但程序没能终止后续语句?
继续执行了邮件发送函数
[attachment=72311]?


  1. //查询会员信息mail用户输入邮箱地址;userid用户名function member($mail,$userid){global $db;$sql = "Select mid,email,safequestion From #@__member where email='$mail' AND userid = '$userid'";$row = $db->GetOne($sql);if(!is_array($row)){return ShowMsg("对不起,用户名与邮箱不匹配!","-1");}else{return $row;}}
    //查询是否发送过验证码,mid为会员ID;userid为会员名称;mailto发送邮件地址;send为Y发送邮件,为N不发送邮件默认为Yfunction sn($mid,$userid,$mailto, $send = 'Y'){global $db;$tptim= (60*10);$dtime = time();$sql = "Select * From #@__pwd_tmp where mid = '$mid'";$row = $db->GetOne($sql);if(!is_array($row)){
    //发送新邮件;newmail($mid,$userid,$mailto,'INSERT',$send);}
    //10分钟后可以再次发送新验证码;elseif($dtime - $tptim > $row['mailtime']){newmail($mid,$userid,$mailto,'UPDATE',$send);}
    //重新发送新的验证码确认邮件;else{return showmsg('对不起,请10分钟后再重新申请', 'login.php');}}

以上是dede5.6 这个判断有问题 ?用户名和邮箱不匹配时输出提示ID错误 但程序继续执行了后续发送邮件的语句 ?


以下是dede5.7 同样存在这个问题
  1. /**?* ?查询会员信息mail用户输入邮箱地址;userid用户名?*?* @param ? ? string ?$mail ?邮件?* @param ? ? string ?$userid ?用户ID?* @return ? ?string?*/function member($mail, $userid){?? ?global $db;?? ?$sql = "SELECT mid,email,safequestion FROM #@__member WHERE email='$mail' AND userid = '$userid'";?? ?$row = $db->GetOne($sql);?? ?if(!is_array($row)) return ShowMsg("对不起,用户ID输入错误!","-1");?? ?else return $row;}
    /**?* ?查询是否发送过验证码?*?* @param ? ? string ?$mid ?会员ID?* @param ? ? string ?$userid ?用户名称?* @param ? ? string ?$mailto ?发送邮件地址?* @param ? ? string ?$send ?为Y发送邮件,为N不发送邮件默认为Y?* @return ? ?string?*/function sn($mid,$userid,$mailto, $send = 'Y'){?? ?global $db;?? ?$tptim= (60*10);?? ?$dtime = time();?? ?$sql = "SELECT * FROM #@__pwd_tmp WHERE mid = '$mid'";?? ?$row = $db->GetOne($sql);?? ?if(!is_array($row))?? ?{?? ? ? ?//发送新邮件;?? ? ? ?newmail($mid,$userid,$mailto,'INSERT',$send);?? ?}?? ?//10分钟后可以再次发送新验证码;?? ?elseif($dtime - $tptim > $row['mailtime'])?? ?{?? ? ? ?newmail($mid,$userid,$mailto,'UPDATE',$send);?? ?}?? ?//重新发送新的验证码确认邮件;?? ?else?? ?{?? ? ? ?return ShowMsg('对不起,请10分钟后再重新申请', 'login.php');?? ?}}






修改方法:当用户名和邮箱不匹配时加个exit();结束程序
5.6 ?(去掉蓝色部分加入绿色部分)
return ShowMsg("对不起,用户名与邮箱不匹配!","-1");?
exit();




5.7 ?
if(!is_array($row)) return ShowMsg("对不起,用户ID输入错误!","-1");
else return $row;
(修改为)?
if(!is_array($row)) ShowMsg("对不起,用户ID输入错误!","-1");
else ShowMsg($row,"-1");?
exit();




return?一定要去掉 否则他返回后就跳出了这个函数 而不会执行?exit();

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多