Login.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace app\admin\controller;
  3. use think\Controller;
  4. use think\Lang;
  5. use think\Validate;
  6. class Login extends Controller
  7. {
  8. public function _initialize()
  9. {
  10. parent::_initialize();
  11. Lang::load(APP_PATH . 'admin/lang/' . config('default_lang') . '/login.lang.php');
  12. }
  13. /**
  14. * 登录
  15. * @return mixed
  16. */
  17. public function index()
  18. {
  19. if (session('admin_id')) {
  20. $this->success('已经登录', 'Admin/Index/index');
  21. }
  22. if (request()->isPost()) {
  23. $admin_name = input('post.admin_name');
  24. $admin_password = input('post.admin_password');
  25. $captcha = input('post.captcha');
  26. $data = array(
  27. 'admin_name' => $admin_name,
  28. 'admin_password' => $admin_password,
  29. 'captcha' => $captcha,
  30. );
  31. //验证数据 BEGIN
  32. $rule = [
  33. ['admin_name', 'require|min:2', '帐号为必填|帐号长度至少为2位'],
  34. ['admin_password', 'require|min:2', '密码为必填|帐号长度至少为6位'],
  35. ['captcha', 'require|min:3', '验证码为必填|帐号长度至少为3位'],
  36. ];
  37. $validate = new Validate($rule);
  38. $validate_result = $validate->check($data);
  39. if (!$validate_result) {
  40. $this->error($validate->getError());
  41. }
  42. //验证数据 END
  43. if (!captcha_check(input('post.captcha'))) {
  44. //验证失败
  45. $this->error('验证码错误');
  46. }
  47. $condition['admin_name'] = $admin_name;
  48. $condition['admin_password'] = md5($admin_password);
  49. $condition['admin_status'] = 1;
  50. $admin_info = db('admin')->where($condition)->find();
  51. if (is_array($admin_info) and !empty($admin_info)) {
  52. //更新 admin 最新信息
  53. $update_info = array(
  54. 'admin_login_num' => ($admin_info['admin_login_num'] + 1),
  55. 'admin_login_time' => TIMESTAMP
  56. );
  57. db('admin')->where('admin_id', $admin_info['admin_id'])->update($update_info);
  58. //设置 session
  59. session('admin_id', $admin_info['admin_id']);
  60. session('admin_name', $admin_info['admin_name']);
  61. session('admin_group_id', $admin_info['admin_group_id']);
  62. session('admin_is_super', $admin_info['admin_is_super']);
  63. session('admin_pid', $admin_info['admin_pid']);
  64. return $this->redirect('Admin/Index/index');
  65. } else {
  66. $this->success('帐号密码错误');
  67. }
  68. } else {
  69. return $this->fetch();
  70. }
  71. }
  72. /**
  73. * 退出登录
  74. */
  75. public function logout()
  76. {
  77. //设置 session
  78. session(null);
  79. return $this->redirect('Admin/Login/index');
  80. exit;
  81. }
  82. }
  83. ?>