find-password.ctrl.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. load()->model('user');
  8. load()->model('setting');
  9. $dos = array('find_password', 'valid_mobile', 'valid_code', 'set_password', 'success');
  10. $do = in_array($do, $dos) ? $do : 'find_password';
  11. $setting_sms_sign = setting_load('site_sms_sign');
  12. $find_password_sign = !empty($setting_sms_sign['site_sms_sign']['find_password']) ? $setting_sms_sign['site_sms_sign']['find_password'] : '';
  13. $mobile = trim($_GPC['mobile']);
  14. if (in_array($do, array('valid_mobile', 'valid_code', 'set_password'))) {
  15. if (empty($mobile)) {
  16. iajax(-1, '手机号不能为空');
  17. }
  18. if (!preg_match(REGULAR_MOBILE, $mobile)) {
  19. iajax(-1, '手机号格式不正确');
  20. }
  21. $user_profile = table('users');
  22. $find_mobile = $user_profile->userProfileMobile($mobile);
  23. if (empty($find_mobile)) {
  24. iajax(-1, '手机号不存在');
  25. }
  26. }
  27. if ($do == 'valid_mobile') {
  28. iajax(0, '本地校验成功');
  29. }
  30. if ($do == 'valid_code') {
  31. if ($_W['isajax'] && $_W['ispost']) {
  32. $code = trim($_GPC['code']);
  33. $image_verify =trim($_GPC['verify']);
  34. if (empty($code)) {
  35. iajax(-1, '短信验证码不能为空');
  36. }
  37. if (empty($image_verify)) {
  38. iajax(-1, '图形验证码不能为空');
  39. }
  40. $captcha = checkcaptcha($image_verify);
  41. if (empty($captcha)) {
  42. iajax(-1, '图形验证码错误,请重新获取');
  43. }
  44. $user_table = table('users');
  45. $code_info = $user_table->userVerifyCode($mobile, $code);
  46. if (empty($code_info)) {
  47. iajax(-1, '短信验证码不正确');
  48. }
  49. if ($code_info['createtime'] + 120 < TIMESTAMP) {
  50. iajax(-1, '短信验证码已过期,请重新获取');
  51. }
  52. iajax(0, '');
  53. } else {
  54. iajax(-1, '非法请求');
  55. }
  56. }
  57. if ($do == 'set_password') {
  58. if ($_W['isajax'] && $_W['ispost']) {
  59. $password = $_GPC['password'];
  60. $repassword = $_GPC['repassword'];
  61. if (empty($password) || empty($repassword)) {
  62. iajax(-1, '密码不能为空');
  63. }
  64. if ($password != $repassword) {
  65. iajax(-1, '两次密码不一致');
  66. }
  67. $user_info = user_single($find_mobile['uid']);
  68. $password = user_hash($password, $user_info['salt']);
  69. if ($password == $user_info['password']) {
  70. iajax(-2, '不能使用最近使用的密码');
  71. }
  72. $result = pdo_update('users', array('password' => $password), array('uid' => $user_info['uid']));
  73. if (empty($result)) {
  74. iajax(0, '设置密码成功');
  75. }
  76. iajax(0);
  77. }
  78. }
  79. template('user/find-password');