国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
4.5KB

  1. <?php
  2. /**
  3. * 密码重设
  4. *
  5. * @version $Id: resetpassword.php 1 8:38 2010年7月9日Z tianya $
  6. * @package DedeCMS.Member
  7. * @copyright Copyright (c) 2007 - 2018, DesDev, Inc.
  8. * @copyright Copyright (c) 2020, DedeBIZ.COM
  9. * @license https://www.dedebiz.com/license/v6
  10. * @link https://www.dedebiz.com
  11. */
  12. require_once(dirname(__FILE__)."/config.php");
  13. require_once(DEDEMEMBER."/inc/inc_pwd_functions.php");
  14. if(empty($dopost)) $dopost = "";
  15. $id = isset($id)? intval($id) : 0;
  16. if($dopost == "")
  17. {
  18. include(dirname(__FILE__)."/templets/resetpassword.htm");
  19. }
  20. elseif($dopost == "getpwd")
  21. {
  22. //验证验证码
  23. if(!isset($vdcode)) $vdcode = '';
  24. $svali = GetCkVdValue();
  25. if(strtolower($vdcode) != $svali || $svali=='')
  26. {
  27. ResetVdValue();
  28. ShowMsg("对不起,验证码输入错误!","-1");
  29. exit();
  30. }
  31. //验证邮箱,用户名
  32. if(empty($mail) && empty($userid))
  33. {
  34. showmsg('对不起,请输入用户名或邮箱', '-1');
  35. exit;
  36. } else if (!preg_match("#(.*)@(.*)\.(.*)#", $mail))
  37. {
  38. showmsg('对不起,请输入正确的邮箱格式', '-1');
  39. exit;
  40. } else if (CheckUserID($userid, '', false) != 'ok')
  41. {
  42. ShowMsg("你输入的用户名 {$userid} 不合法!","-1");
  43. exit();
  44. }
  45. $member = member($mail, $userid);
  46. //以邮件方式取回密码;
  47. if($type == 1)
  48. {
  49. //判断系统邮件服务是否开启
  50. if($cfg_sendmail_bysmtp == "Y")
  51. {
  52. sn($member['mid'],$userid,$member['email']);
  53. }else
  54. {
  55. showmsg('对不起邮件服务暂未开启,请联系管理员', 'login.php');
  56. exit();
  57. }
  58. //以安全问题取回密码;
  59. } else if ($type == 2)
  60. {
  61. if($member['safequestion'] == 0)
  62. {
  63. showmsg('对不起您尚未设置安全密码,请通过邮件方式重设密码', 'login.php');
  64. exit;
  65. }
  66. require_once(dirname(__FILE__)."/templets/resetpassword3.htm");
  67. }
  68. exit();
  69. }
  70. else if($dopost == "safequestion")
  71. {
  72. $mid = preg_replace("#[^0-9]#", "", $id);
  73. $sql = "SELECT safequestion,safeanswer,userid,email FROM #@__member WHERE mid = '$mid'";
  74. $row = $db->GetOne($sql);
  75. if(empty($safequestion)) $safequestion = '';
  76. if(empty($safeanswer)) $safeanswer = '';
  77. if($row['safequestion'] == $safequestion && $row['safeanswer'] == $safeanswer)
  78. {
  79. sn($mid, $row['userid'], $row['email'], 'N');
  80. exit();
  81. }
  82. else
  83. {
  84. ShowMsg("对不起,您的安全问题或答案回答错误","-1");
  85. exit();
  86. }
  87. }
  88. else if($dopost == "getpasswd")
  89. {
  90. //修改密码
  91. if(empty($id))
  92. {
  93. ShowMsg("对不起,请不要非法提交","login.php");
  94. exit();
  95. }
  96. $mid = preg_replace("#[^0-9]#", "", $id);
  97. $row = $db->GetOne("SELECT * FROM #@__pwd_tmp WHERE mid = '$mid'");
  98. if(empty($row))
  99. {
  100. ShowMsg("对不起,请不要非法提交","login.php");
  101. exit();
  102. }
  103. if(empty($setp))
  104. {
  105. $tptim= (60*60*24*3);
  106. $dtime = time();
  107. if($dtime - $tptim > $row['mailtime'])
  108. {
  109. $db->executenonequery("DELETE FROM `#@__pwd_tmp` WHERE `md` = '$id';");
  110. ShowMsg("对不起,临时密码修改期限已过期","login.php");
  111. exit();
  112. }
  113. require_once(dirname(__FILE__)."/templets/resetpassword2.htm");
  114. }
  115. elseif($setp == 2)
  116. {
  117. if(isset($key)) $pwdtmp = $key;
  118. $sn = md5(trim($pwdtmp));
  119. if($row['pwd'] == $sn)
  120. {
  121. if($pwd != "")
  122. {
  123. if($pwd == $pwdok)
  124. {
  125. $pwdok = md5($pwdok);
  126. $sql = "DELETE FROM `#@__pwd_tmp` WHERE `mid` = '$id';";
  127. $db->executenonequery($sql);
  128. $sql = "UPDATE `#@__member` SET `pwd` = '$pwdok' WHERE `mid` = '$id';";
  129. if($db->executenonequery($sql))
  130. {
  131. showmsg('更改密码成功,请牢记新密码', 'login.php');
  132. exit;
  133. }
  134. }
  135. }
  136. showmsg('对不起,新密码为空或填写不一致', '-1');
  137. exit;
  138. }
  139. showmsg('对不起,临时密码错误', '-1');
  140. exit;
  141. }
  142. }