Register.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace app\home\controller;
  3. use app\common\model\UserModel;
  4. use app\common\service\SmsService;
  5. use app\home\HomeBaseController;
  6. use think\facade\Validate;
  7. class Register extends HomeBaseController
  8. {
  9. public function index()
  10. {
  11. return view();
  12. }
  13. public function sendSms()
  14. {
  15. $mobile = trim(input('post.mobile'));
  16. $validate = Validate::rule('mobile', 'require|mobile');
  17. if (!$validate->check(['mobile' => $mobile])) {
  18. ajax_return(1, '手机号错误');
  19. }
  20. //手机号验证
  21. $user = UserModel::where('mobile', $mobile)->find();
  22. !empty($user) && ajax_return(1, '该手机号已注册');
  23. $rand = rand(100000, 999999);
  24. $preg_phone = '/^1[34578]\d{9}$/ims';
  25. if (preg_match($preg_phone, $mobile)) {
  26. $sms = new SmsService();
  27. $res = $sms->send($mobile, 'verification', [$rand]);
  28. if ($res['code'] == 0) {
  29. session('home.register.verify', $rand);
  30. session('home.register.verify_expire', time());
  31. } else {
  32. ajax_return(1, '发送失败,请联系管理员');
  33. }
  34. } else {
  35. ajax_return(1, '手机号格式不正确');
  36. }
  37. ajax_return();
  38. }
  39. public function doRegister()
  40. {
  41. $data = input('post.');
  42. $validate = Validate::rule('mobile', 'require|mobile');
  43. if (!$validate->check($data)) {
  44. ajax_return(1, '手机号错误');
  45. }
  46. empty($data['verify']) && ajax_return(1, '请输入验证码');
  47. empty($data['password']) && ajax_return(1, '请输入密码');
  48. empty($data['re_password']) && ajax_return(1, '请输入确认密码');
  49. if (strlen($data['password']) < 6) {
  50. ajax_return(1, '密码需要至少6位');
  51. }
  52. if ($data['password'] != $data['re_password']) {
  53. ajax_return(1, '密码和确认密码不同');
  54. }
  55. //手机号验证
  56. $user = UserModel::where('mobile', $data['mobile'])->find();
  57. !empty($user) && ajax_return(1, '该手机号已注册');
  58. //验证码校验
  59. if (config('home.sms_verify_expire') > 0) {
  60. $verify_expire = session('home.register.verify_expire');
  61. if ($verify_expire + config('home.sms_verify_expire') < time()) {
  62. session('home.register.verify', null);
  63. session('home.register.verify_expire', null);
  64. ajax_return(1, '验证码已过期');
  65. }
  66. }
  67. $verify = session('home.register.verify');
  68. if ($verify != $data['verify']) {
  69. ajax_return(1, '验证码不正确');
  70. }
  71. $add = [];
  72. $add['salt'] = rand_str();
  73. $add['password'] = md5(md5($add['salt']) . $data['password']);
  74. $add['mobile'] = $add['account'] = $add['nickname'] = $add['realname'] = $data['mobile'];
  75. $add['status'] = UserModel::STATUS_PASS;
  76. UserModel::create($add);
  77. session('home.register.verify', null);
  78. session('home.register.verify_expire', null);
  79. ajax_return();
  80. }
  81. }