inc_forgetpass.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. CURSCRIPT != 'wap' && exit('FORBIDDEN');
  3. $action = in_array($action, array('sendmail', 'sendsms', 'resetpage', 'resetpwd')) ? $action : '';
  4. $authcodesettings = read_static_cache('authcodesettings');
  5. require_once MYMPS_MEMBER . '/include/common.func.php';
  6. if ($action == 'sendmail') {
  7. $email = isset($email) ? mhtmlspecialchars($email) : '';
  8. if ($authcodesettings['forgetpass'] == 1 && !($randcode = mymps_chk_randcode($checkcode))) {
  9. redirectmsg('验证码输入错误', '?mod=forgetpass');
  10. exit();
  11. }
  12. empty($email) && redirectmsg('请填写电子邮箱地址', '?mod=forgetpass');
  13. $user_info = $db->getRow('SELECT * FROM `' . $db_mymps . 'member` WHERE email = \'' . $email . '\'');
  14. if ($user_info['userid']) {
  15. require MYMPS_INC . '/email.fun.php';
  16. $code = base64_encode($user_info['id'] . '.' . md5($user_info['id'] . '+' . $user_info['userpwd']) . '.' . $timestamp);
  17. globalassign();
  18. if (send_pwd_email($user_info['id'], $user_info['userid'], $email, $code, $mayimobile['mobiledomain'])) {
  19. include mymps_tpl('member_forgetpass_2');
  20. }
  21. else {
  22. $msg = '发送邮件失败,请联系客服:' . $mymps_global['SiteTel'] . '重设密码!';
  23. redirectmsg($msg, 'index.php?mod=forgetpass');
  24. exit();
  25. }
  26. }
  27. else {
  28. $msg = '该电子邮箱或用户名不存在!请联系客服';
  29. redirectmsg($msg, 'index.php?mod=forgetpass');
  30. exit();
  31. }
  32. }
  33. else if ($action == 'sendsms') {
  34. require_once MYMPS_ROOT . '/include/sms.fun.php';
  35. $mobile = isset($mobile) ? mhtmlspecialchars($mobile) : '';
  36. if ($authcodesettings['forgetpass'] == 1 && !($randcode = mymps_chk_randcode($checkcode))) {
  37. redirectmsg('验证码输入错误,请返回重新输入');
  38. }
  39. empty($mobile) && redirectmsg('请填写您的手机号码!');
  40. $user_info = $db->getRow('SELECT * FROM `' . $db_mymps . 'member` WHERE mobile = \'' . $mobile . '\'');
  41. if ($user_info['userid']) {
  42. $smsconfig = get_sms_config();
  43. $smsconfig['sms_service'] && include MYMPS_ROOT . '/include/' . $smsconfig['sms_service'] . '/mymps.php';
  44. if (!send_pwdsms($smsconfig['sms_user'], $smsconfig['sms_pwd'], $mobile, $smsconfig['sms_pwdtpl'])) {
  45. $msg = '验证码发送失败!请联系客服';
  46. redirectmsg($msg, 'index.php?mod=forgetpass');
  47. exit();
  48. }
  49. else {
  50. $uid = $user_info['id'];
  51. $userid = $user_info['userid'];
  52. $email = $user_info['email'];
  53. include mymps_tpl('member_forgetpass_2');
  54. }
  55. }
  56. else {
  57. $msg = '该手机号尚未注册用户!请联系客服';
  58. redirectmsg($msg, 'index.php?mod=forgetpass');
  59. exit();
  60. }
  61. }
  62. else if ($action == 'resetpwd') {
  63. $uid = $uid ? intval($uid) : '';
  64. $userid = $userid ? trim($userid) : '';
  65. $userpwd = $userpwd ? trim($userpwd) : '';
  66. $email = $email ? trim($email) : '';
  67. $mobile = $mobile ? trim($mobile) : '';
  68. $smscheckcode = $smscheckcode ? intval($smscheckcode) : '';
  69. if ($mymps_global['cfg_member_verify'] == 4) {
  70. if (!mymps_chk_smsrandcode($smscheckcode, $mobile)) {
  71. redirectmsg('密码修改失败,手机验证码输入不正确或与手机号不匹配!', '?mod=forgetpass');
  72. }
  73. }
  74. if (empty($userpwd)) {
  75. errormsg('请输入你的新密码!');
  76. }
  77. if (PASSPORT_TYPE == 'phpwind') {
  78. require MYMPS_ROOT . '/pw_client/uc_client.php';
  79. $pw_user = uc_user_get($userid);
  80. $result = uc_user_edit($pw_user['uid'], $pw_user['username'], '', md5($userpwd), '');
  81. }
  82. else if (PASSPORT_TYPE == 'ucenter') {
  83. require MYMPS_ROOT . '/uc_client/client.php';
  84. $result = uc_user_edit($userid, $userpwd, $userpwd, $email, 1);
  85. }
  86. if (!empty($userpwd)) {
  87. $db->query('UPDATE `' . $db_mymps . 'member` SET userpwd=\'' . md5($userpwd) . ('\' WHERE id = \'' . $uid . '\''));
  88. redirectmsg('密码修改成功!请输入账号密码重新登录', 'index.php?mod=login');
  89. exit();
  90. }
  91. else {
  92. redirectmsg('密码修改失败,请联系客服', 'index.php?mod=forgetpass');
  93. exit();
  94. }
  95. }
  96. else if (empty($action)) {
  97. if ($_obf_YW1wO2NvZGU_) {
  98. $code = $_obf_YW1wO2NvZGU_;
  99. }
  100. $uid = $uid ? intval($uid) : '';
  101. $code = $code ? mhtmlspecialchars($code) : '';
  102. if ($code) {
  103. $arr = explode('.', base64_decode($code));
  104. $uid = $arr[0];
  105. $user_info = $db->getRow('SELECT id,userid,userpwd,email FROM `' . $db_mymps . 'member` WHERE id = \'' . $uid . '\'');
  106. if ($timestamp - $arr[2] < 1800 && $arr[1] == md5($user_info['id'] . '+' . $user_info['userpwd'])) {
  107. $userid = $user_info['userid'];
  108. $uid = $user_info['id'];
  109. $email = $user_info['email'];
  110. include mymps_tpl('member_forgetpass_2');
  111. }
  112. else {
  113. $status = 'error';
  114. $msg = '该密码重设链接已失效!';
  115. redirectmsg($msg, 'index.php?mod=forgetpass');
  116. }
  117. }
  118. else {
  119. $mymps_imgcode = $authcodesettings['forgetpass'];
  120. include mymps_tpl('member_forgetpass');
  121. }
  122. }
  123. ?>