国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

后臺通用管理系統(tǒng)之登陸總結(jié)

Original 2018-12-26 12:21:46 361
abstract:一.后臺通用管理系統(tǒng)主要功能就是登陸,退出登錄,跳轉(zhuǎn),管理員列表,管理員權(quán)限設(shè)置,菜單管理,權(quán)限分配和一些系統(tǒng)設(shè)置等.二.登陸模塊    1.后臺登陸模塊要求簡介,易操作,首先創(chuàng)建用戶表,字段要求要用角色id,通過角色id來根據(jù)角色分配權(quán)限    2.登陸驗證碼功能,有composer擴(kuò)展的captcha實現(xiàn).&nbs

一.后臺通用管理系統(tǒng)主要功能就是登陸,退出登錄,跳轉(zhuǎn),管理員列表,管理員權(quán)限設(shè)置,菜單管理,權(quán)限分配和一些系統(tǒng)設(shè)置等.

二.登陸模塊

    1.后臺登陸模塊要求簡介,易操作,首先創(chuàng)建用戶表,字段要求要用角色id,通過角色id來根據(jù)角色分配權(quán)限

1.png

    2.登陸驗證碼功能,有composer擴(kuò)展的captcha實現(xiàn).

2.png

    3.自定義數(shù)據(jù)庫訪問類封裝

        封裝自定義的數(shù)據(jù)庫訪問類封裝可以簡化一些用不到的TP自帶的數(shù)據(jù)庫訪問方法,然后將其寫入facade中,再將容器中注入.

<?php
namespace Util;
use think\Db;

class SysDb
{
    //指定表名
    public function table($table)
    {
        $this->where = [];
        $this->field = '*';
        $this->order = '';
        $this->limit = 0;
        $this->table = $table;
        return $this;
    }
    //指定查詢字段
    public function field($field="*")
    {
        $this->field = $field;
        return $this;
    }

    //加載數(shù)量
    public function limit($limit)
    {
        $this->limit = $limit;
        return $this;
    }

    //排序
    public function order($order)
    {
        $this->order = $order;
        return $this;
    }

    //條件查詢
    public function where($where = [])
    {
        $this->where = $where;
        return $this;
    }

    //單條記錄
    public function item()
    {
        return Db::name($this->table)->field($this->field)->where($this->where)->find();
    }

    //返回多條數(shù)據(jù)
    public function lists()
    {
        $query = Db::name($this->table)->field($this->field)->where($this->where);
        $this->limit && $query = $query->limit($this->limit);
        $this->order && $query = $query->order($this->order);
        return $query->select();
    }

    //自定義索引
    public function cates($index)
    {
        $query = Db::name($this->table)->field($this->field)->where($this->where);
        $this->limit && $query = $query->limit($this->limit);
        $this->order && $query = $query->order($this->order);
        $lists =  $query->select();
        if(!$lists){
            return $lists;
        }
        $result = [];
        foreach ($lists as $key=>$value)
        {
            $result[$value[$index]] = $value;
        }
        return $result;
    }

    //分頁方法
    public function pages($pageSize = 10)
    {
        $total = Db::name($this->table)->where($this->where)->count();
        $query = Db::name($this->table)->field($this->field)->where($this->where);
        $this->order && $query = $query->order($this->order);
        $data = $query->paginate($pageSize,$total);
        return array('total'=>$total,'lists'=>$data->items(),'page'=>$data->rendor());       //items()返回數(shù)據(jù)集
    }

    //插入數(shù)據(jù)庫方法
    public function insert($data)
    {
        return Db::name($this->table)->insertGetId($data);
    }

    //批量插入
    public function insertAll($data)
    {
        return Db::name($this->table)->insertAll($data);
    }

    //修改
    public function update($data)
    {
        return Db::name($this->table)->where($this->where)->update($data);
    }
}

    4.Facade中創(chuàng)建SysDb.php

<?php

namespace think\facade;

use think\Facade;

class SysDb extends Facade
{
        
    protected static function getFacadeClass()
    {
        return 'sysdb';
    }
}

    5.容器類中寫入綁定標(biāo)識

//新增sysDb
'sysdb'                 => SysDb::class,

    6.實現(xiàn)登陸功能

<?php
namespace app\admins\controller;
use think\Controller;
use think\facade\SysDb;    //門面

class Account extends Controller
{
    public function login()
    {
        return $this->view->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'=>2,'msg'=>'密碼不能為空')));
        }
        if($verifycode == ''){
            exit(json_encode(array('code'=>3,'msg'=>'驗證碼不能為空')));
        }
        //驗證驗證碼
        if(!captcha_check($verifycode)){
            exit(json_encode(array('code'=>4,'msg'=>'驗證碼不正確')));
        }

        //驗證用戶
//        $this->db = new SysDb();
        $res = SysDb::table('admins')->where(array('username'=>$username))->item();    //使用新增門面技術(shù)
        if(!$res){
            exit(json_encode(array('code'=>5,'msg'=>'用戶名不存在')));
        }
        if($res['password'] != md5($password) ){
            exit(json_encode(array('code'=>6,'msg'=>'密碼不正確')));
        }
        if($res['status']==1){
            exit(json_encode(array('code'=>7,'msg'=>'該管理員已經(jīng)被禁用')));
        }
        //設(shè)置用戶的session值
        session('admin',$res);
        exit(json_encode(array('res'=>0,'msg'=>'登陸成功')));

    }
}

4.png3.png5.png6.png

    7.非法登陸操作,通過session,判斷是否有session的值,沒有則強(qiáng)制跳轉(zhuǎn)登陸界面

<?php
namespace app\admins\controller;
use think\Controller;

class Base extends Controller
{
    public function __construct()
    {
        parent::__construct();
        if(session('admin') == ''){
            header('Location:/index.php/admins/account/login');
            exit();
        }
    }
}



Release Notes

Popular Entries