登录模块的操作

原创2018-12-12 18:28:53206
摘要:总结:本章课程主要学习到了登录页面的操作,从登录页面的制作,管理员表的设计,数据库方位类的封装,登录功能的实现,以及防止非法用户访问多个功能,收货最大的是关于登录数据的验证,前端的验证以及后台的验证,在操作的过程中因报错不明显,找错误占用的很多的时间,对于数据的验证收获还是很大的。/*********************  Account.php  登录控制器*******

总结:本章课程主要学习到了登录页面的操作,从登录页面的制作,管理员表的设计,数据库方位类的封装,登录功能的实现,以及防止非法用户访问多个功能,收货最大的是关于登录数据的验证,前端的验证以及后台的验证,在操作的过程中因报错不明显,找错误占用的很多的时间,对于数据的验证收获还是很大的。

/*********************  Account.php  登录控制器***************************/

<?php
namespace app\admins\controller;
use think\Controller;
use Util\SysDb;
class Account extends Controller
{
   public function login(){
       //echo md5('admin123456');
       //$this->db = new SysDb;
      //$this->db->table('admin')->where(array('id'=>1))->lists();
       return $this->fetch();
   }
   public function dologin()
   {
       $username = trim(input('post.username'));
       $password = input('post.password');
       $verifycode = input('post.verifycode');
       if($username == ''){
           exit(json_encode(array('code'=>1,'msg'=>'用户名不能为空')));
       }
       if($password == ''){
           exit(json_encode(array('code'=>1,'msg'=>'密码不能为空')));
       }
       if($verifycode == ''){
           exit(json_encode(array('code'=>1,'msg'=>'验证码不能为空')));
       }
       if(!captcha_check($verifycode)){
           exit(json_encode(array('code'=>1,'msg'=>'验证码不正确')));
       }
       //验证用户
       $this->db = new SysDb;
       $admin = $this->db->table('admins')->where(array('username'=>$username))->item();
       if(!$admin){
           exit(json_encode(array('code'=>1,'msg'=>'用户不存在')));
       }
       if(md5($admin['username'].$password) != $admin['password']){
           exit(json_encode(array('code'=>1,'msg'=>'密码错误')));
       }
       if($admin['status']==1){
           exit(json_encode(array('code'=>1,'msg'=>'用户已被禁用')));
       }
       //设置用户session
       session('admin',$admin);
       exit(json_encode(array('code'=>0,'msg'=>'登录成功')));
   }

}


/*********************   login.php  登录页面  **********************/

<html>
<head>
   <title>后台模板</title>
   <link rel="stylesheet" type="text/css" href="/static/plugins/layui/css/layui.css">
   <script type="text/javascript" src="/static/plugins/layui/layui.js"></script>
   <style type="text/css">
       body{background:#0094ff;}
   </style>
</head>
<body>
   <div style="position:absolute;left:50%;top:50%;width:500px;margin-left:-250px;margin-top:-200px;">
       <div style="background:#ffffff;padding:20px;border-radius:4px;box-shadow:5px 5px 20px #444444;">
           <div class="layui-form">
               <div class="layui-form-item" style="color:gray;">
                   <h2>后台管理系统</h2>
               </div>
               <hr>
               <div class="layui-form-item">
                   <label class="layui-form-label">用户名</label>
                   <div class="layui-input-block">
                       <input type="text" class="layui-input" id="username">
                   </div>
               </div>
               <div class="layui-form-item">
                   <label class="layui-form-label">密&nbsp;&nbsp;&nbsp;&nbsp;码</label>
                   <div class="layui-input-block">
                       <input type="password" class="layui-input" id="password">
                   </div>
               </div>
               <div class="layui-form-item">
                   <label class="layui-form-label">验证码</label>
                   <div class="layui-input-inline">
                       <input type="text" class="layui-input" id="verifycode">
                   </div>
                   <img src="{:captcha_src()}" id="img" onclick="reloadImg()">
               </div>
               <div class="layui-form-item">
                   <div class="layui-input-block">
                       <button class="layui-btn" onclick="dologin()">登录</button>
                   </div>
               </div>
           </div>
       </div>
   </div>
</body>
</html>
<script type="text/javascript">
   layui.use('layer',function(){
       layer = layui.layer;
       $ = layui.jquery;

       // 获取焦点
       $('#username').focus();

       // 直接回车登录
       $('input').keydown(function(e){
           if(e.keyCode == 13){
               dologin();
           }
       });
   });

   // 重新加载验证码
   function reloadImg(){
       $('#img').attr('src','{:captcha_src()}?rand='+Math.random());
   }

   function dologin(){
       var username = $.trim($('#username').val());
       var password = $('#password').val();
       var verifycode = $('#verifycode').val();
       if(username==''){
           layer.alert('请输入用户名',{'icon':2});
           return;
       }
       if(password == ''){
           layer.alert('密码不能为空',{'icon':2});
           return;
       }
       if(verifycode==''){
           layer.alert('验证码不能为空',{'icon':2});
           return;
       }
       $.post('/index.php/admins/account/dologin',{'username':username,'password':password,'verifycode':verifycode},function(res){
           if(res.code>0){
               reloadImg();
               layer.alert(res.msg,{'icon':2});
           }else{
               layer.msg(res.msg);
               setTimeout(function(){window.location.href='/index.php/admins/home/index'},1000);
           }
       },'json');
   }
</script>


/**************************  Base.php  权限控制器 ***************************/

<?php
namespace app\admins\controller;
use think\Controller;
use Util\SysDb;
class Base extends Controller{
   public function __construct()
   {
       parent::__construct();
       $this->_admin = session('admin');
       if(!$this->_admin){
           header('Location:/index.php/admins/account/login');
           exit;
       }
   }
}


/*************************   Home.php  首页控制器  *****************************/

<?php
namespace app\admins\controller;
use think\Controller;
use Util\SysDb;
class Home extends Base{
   public function index(){
       return $this->fetch();
   }
}


发布手记

热门词条