Login.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace app\admin\controller;
  3. use think\facade\View;
  4. use think\facade\Lang;
  5. use think\captcha\facade\Captcha;
  6. /**
  7. * ============================================================================
  8. *
  9. * ============================================================================
  10. * 版权所有 2014-2028 浙江惠利玛产业互联网有限公司,并保留所有权利。
  11. * 网站地址: https://www.valimart.net/
  12. * ----------------------------------------------------------------------------
  13. *
  14. * ============================================================================
  15. * 控制器
  16. */
  17. class Login extends AdminControl {
  18. public function initialize() {
  19. parent::initialize();
  20. Lang::load(base_path() . 'admin/lang/'.config('lang.default_lang').'/login.lang.php');
  21. }
  22. public function index() {
  23. if (session('admin_id')) {
  24. $this->success(lang('already_logged'), 'Index/index');
  25. }
  26. if (request()->isPost()) {
  27. $admin_name = input('post.admin_name');
  28. $admin_password = input('post.admin_password');
  29. $captcha = input('post.captcha');
  30. $data = array(
  31. 'admin_name' => $admin_name,
  32. 'admin_password' => $admin_password,
  33. 'captcha' => $captcha,
  34. );
  35. $login_validate = ds_validate('admin');
  36. if (!$login_validate->scene('index')->check($data)) {
  37. ds_json_encode(10001,$login_validate->getError());
  38. }
  39. if (!captcha_check(input('post.captcha'))) {
  40. //验证失败
  41. ds_json_encode(10001,lang('wrong_checkcode'));
  42. }
  43. $condition = array();
  44. $condition[] = array('admin_name','=',$admin_name);
  45. $condition[] = array('admin_password','=',md5($admin_password));
  46. $admin_mod=model('admin');
  47. $admin_info = $admin_mod->getOneAdmin($condition);
  48. if (is_array($admin_info) and !empty($admin_info)) {
  49. //更新 admin 最新信息
  50. $update_info = array(
  51. 'admin_login_num' => ($admin_info['admin_login_num'] + 1),
  52. 'admin_login_time' => TIMESTAMP
  53. );
  54. $admin_mod->editAdmin($update_info, $admin_info['admin_id']);
  55. //设置 session
  56. session('admin_id', $admin_info['admin_id']);
  57. session('admin_name', $admin_info['admin_name']);
  58. session('admin_gid', $admin_info['admin_gid']);
  59. session('admin_is_super', $admin_info['admin_is_super']);
  60. ds_json_encode(10000,lang('login_succ'), '','',false);
  61. } else {
  62. ds_json_encode(10001,lang('login_error'));
  63. }
  64. } else {
  65. return View::fetch();
  66. }
  67. }
  68. public function logout() {
  69. //设置 session
  70. session(null);
  71. ds_json_encode(10000,lang('logout_succ'), '','',false);
  72. }
  73. /**
  74. *产生验证码
  75. */
  76. public function makecode()
  77. {
  78. $config = [
  79. 'fontSize' => 20, // // 验证码字体大小
  80. 'length' => 4, // 验证码位数
  81. 'useNoise' => false,//是否添加杂点
  82. 'useCurve' =>true,
  83. 'imageH' => 50,//高度
  84. 'imageW' => 150,
  85. ];
  86. config($config,'captcha');
  87. $captcha = Captcha::create();
  88. return $captcha;
  89. }
  90. }
  91. ?>