Register.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * User: nickbai
  4. * Date: 2017/10/24 10:46
  5. * Email: 1902822973@qq.com
  6. */
  7. namespace app\index\controller;
  8. use think\Controller;
  9. class Register extends Controller
  10. {
  11. // 注册首页
  12. public function index()
  13. {
  14. $this->assign([
  15. 'version' => config('version')
  16. ]);
  17. return $this->fetch();
  18. }
  19. // 处理注册
  20. public function doRegister()
  21. {
  22. if(request()->isPost()){
  23. $userName = input("param.user_name/s");
  24. $userEmail = input("param.user_email/s");
  25. $password = input("param.password/s");
  26. $emailCode = input("param.code/s");
  27. if(empty($userName)){
  28. return json(['code' => -1, 'data' => '', 'msg' => '用户名不能为空']);
  29. }
  30. if(empty($userEmail)){
  31. return json(['code' => -2, 'data' => '', 'msg' => '邮箱不能为空']);
  32. }
  33. if(empty($password)){
  34. return json(['code' => -3, 'data' => '', 'msg' => '密码不能为空']);
  35. }
  36. if(empty($emailCode)){
  37. return json(['code' => -4, 'data' => '', 'msg' => '验证码不能为空']);
  38. }
  39. if($emailCode != session('code')){
  40. return json(['code' => -5, 'data' => '', 'msg' => '验证码不正确']);
  41. }
  42. $name = db('accounts')->where('user_name', $userName)->find();
  43. if(!empty($name)){
  44. return json(['code' => -6, 'data' => '', 'msg' => '用户名已存在']);
  45. }
  46. $email = db('accounts')->where('user_email', $userEmail)->find();
  47. if(!empty($email)){
  48. return json(['code' => -7, 'data' => '', 'msg' => '邮箱已存在']);
  49. }
  50. // 添加用户信息
  51. $userInfo = [
  52. 'user_name' => $userName,
  53. 'user_email' => $userEmail,
  54. 'password' => md5($password . config('salt')),
  55. 'status' => 1,
  56. 'add_time' => time(),
  57. 'last_login_time' => time()
  58. ];
  59. $user_id = db('accounts')->insertGetId($userInfo);
  60. // 注册成功 生成token
  61. $module = mt_rand(100000,999999);
  62. $token = base64_encode($module.'#$@%!^*/'.time().'/'.$userInfo['id']);
  63. // 更新用户状态
  64. $param = [
  65. 'token' => $token,
  66. 'expire_time' => time(),
  67. ];
  68. db('accounts')->where('id', $user_id)->update($param);
  69. return json(['code' => 1, 'data' => url('user/index'), 'msg' => '注册成功']);
  70. }
  71. }
  72. }