登录页面

后台

<?php

namespace app\admin\controller;

use app\admin\model\AdminModel;
use think\Controller;
use think\captcha\Captcha;
class Login extends Controller
{
    /**
     * 登录页面
     */
    public function index()
    {
        return $this->fetch();
    }

    public function checkLogin(){
        $username = trim(input("post.username"));
        $password = trim(input("post.password"));
        $verify = trim(input("post.verify"));
        if(empty($username)){
            sendmsg(false,"用户名不能为空");
        }elseif(empty($password)){
            sendmsg(false,"密码不能为空");
        }elseif(empty($verify)){
            sendmsg(false,"验证码不能为空");
        }

        if(!$this->check_verify($verify)){
            sendmsg(false,"验证码错误");
        }

        $adminModel = new AdminModel();
        $res = $adminModel->checkAdminLogin($username,$password);
        if($res['ok']){
            sendmsg(true,"登录成功");
        }else{
            sendmsg(false,$res['msg']);
        }


    }

    //验证码
    public function Verify(){
        $captcha = new Captcha();
        $captcha->length = 4;
        $captcha->codeSet = "02345689";
        return $captcha->entry();
    }

    /**
     * 检测验证码是否正确
     * @param $code 验证码
     * @param string $id 区分验证码 主键
     * @return bool true|false
     */
    public function check_verify($code,$id=''){
        $captcha = new Captcha();
        return $captcha->check($code,$id);
    }


    public function loginOut(){
        session(null);
        $this->redirect("Login/index");
    }
}

前台

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>猪上树商城管理后台</title>
    <link rel="stylesheet" href="/static/admin/login/css/style.css">
</head>
<body>
<div class="login">
    <h1>猪上树商城管理后台</h1>
    <form method="post">
        <input type="text" id="username" name="username" placeholder="请输入账号" required="required" />
        <input type="password" id="password" name="password" placeholder="请输入密码" required="required" />
        <input type="text" id="verify" name="verify" placeholder="请输入验证码" required="required" style="width:150px;float:left;" />
        <img "this.src='{:url('Login/Verify')}'" src="{:url('Login/Verify')}" height="35" title="点击切换验证码" style="float:right;">
    </form>
    <button type="submit" id="login" class="btn btn-primary btn-block btn-large">登录</button>
</div>
<script src="/static/jquery-3.3.1.min.js"></script>
<script src="/static/layui/layui.all.js"></script>
<script>
    $(document).keyup(function(event){
        if(event.keyCode ==13){
            $("#login").trigger("click");
        }
    });
    $("#login").click(function(){
        var username = $("#username").val();
        var password = $("#password").val();
        var verify = $("#verify").val();
        $.ajax({
            url:"{:url('Login/checkLogin')}",
            type:"post",
            dataType:"json",
            data:{"username":username,"password":password,"verify":verify},
        }).done(function(res) {
            if(res.ok){
                setTimeout("window.location='{:url('Index/index')}'",650);
            }else{
                layer.msg(res.msg,{icon:2});
            }
        }).fail(function() {
            layer.msg("发送请求失败",{icon:2});
        });
    });
</script>
</body>
</html>

模板

<?php

namespace app\admin\model;

use think\Model;

class AdminModel extends Model
{
    /**
     * checkAdminLogin 检查登录
     * @param $username 用户账号
     * @param $password 用户密码
     * @return mixed array [ok] bool [msg] string
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public function checkAdminLogin($username,$password){
        $adminInfo = db("admin")->where("username",$username)->find();
        if(empty($adminInfo)){  //此用户不存在
            $ret['ok'] = false;
            $ret['msg'] = "此用户不存在";
            return $ret;
        }else{  //此用户存在
            if($adminInfo['status']==1){  //当前用户状态是正常的
                if(md5($password)==$adminInfo['password']){  //判断密码


                    //获取管理员的权限
                    $role_info = db("role_admin")->alias("ra")
                        ->join("access a","ra.role_id=a.role_id","LEFT")
                        ->where("ra.user_id",$adminInfo['id'])->find();
                    session("ADMIN_NODE",explode(",",$role_info['node_id']));
                    session("ADMIN_SESSION",$adminInfo);
                    $ret['ok'] = true;
                    $ret['msg'] = "登录成功";
                    return $ret;
                }else{
                    $ret['ok'] = false;
                    $ret['msg'] = "账号密码错误";
                    return $ret;
                }
            }else{  //当前用户锁定禁用
                $ret['ok'] = false;
                $ret['msg'] = "此账户已被锁定";
                return $ret;
            }
        }
    }

    /**
     * 添加管理员
     * @param $data
     */
    public function addAdmin($data){
        $adminData = $data;
        $adminData['password'] = md5($data['password']);
        unset($adminData['file']);
        unset($adminData['role_id']);
        if(db("admin")->insert($adminData)){
            $raData['user_id'] = db("admin")->getLastInsID();
            $raData['role_id'] = $data['role_id'];
            if(db("role_admin")->insert($raData)){
                return true;
            }else{
                return false;
            }
        }else{
            return false;
        }
    }


    public function getAdminList($keywords){
        if(empty($keywords)){
            $data = db("admin")->alias("a")
                ->field("a.*,ra.role_id,r.name as rolename")
                ->join("role_admin ra","a.id=ra.user_id","LEFT")
                ->join("role r","ra.role_id=r.id","LEFT")
                ->paginate(10);
        }else{
            $data = db("admin")->alias("a")
                ->field("a.*,ra.role_id,r.name as rolename")
                ->join("role_admin ra","a.id=ra.user_id","LEFT")
                ->join("role r","ra.role_id=r.id","LEFT")
                ->where("a.username|a.phone|a.email|r.name","LIKE","%$keywords%")
                ->paginate(10);
        }
        return $data;
    }

    public function editAdmin($data){
        $adminData = $data;
        $editAdminStatus = false;
        $editRoleAdminStatus = false;
        unset($adminData['role_id']);
        unset($adminData['file']);
        if(!empty($adminData['password'])){
            $adminData['password'] = md5($data['password']);
        }
        if(db("admin")->where("id",$data['id'])->update($adminData)){
            $editAdminStatus = true;
        }

        if(db("role_admin")->where("user_id",$data['id'])->setField("role_id",$data['role_id'])){
            $editRoleAdminStatus = true;
        }

        if($editAdminStatus || $editRoleAdminStatus){
            return true;
        }else{
            return false;
        }

    }


    public function delAdmin(){

    }

    public function editAdminStatus($id){

    }

    public function getAdminById($id){
        $data = db("admin")
            ->alias("a")->field("a.*,ra.role_id")
            ->join("role_admin ra","a.id=ra.user_id","LEFT")
            ->where("a.id",$id)->find();
        return $data;
    }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值