通用后台管理系统登陆

原创 2019-01-04 11:11:09 330
摘要:<?php namespace app\admin\controller; use think\Controller; use Util\SysDb; class Account extends controller {     public function login
<?php
namespace app\admin\controller;
use think\Controller;
use Util\SysDb;

class Account extends controller
{
    public function login()
    {

    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('admin')->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'=>'登录成功')));
}
}
<!DOCTYPE html>
<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>
<!-- 
 position:absolute 是绝对定位
 margin-left 该属性设置元素的左外边距
 padding 内边距属性
 border-radius 该属性允许元素添加圆角边框
 box-shadow 该属性向框添加一个或多个阴影
 <img src="{:captcha_src()}"> 加载验证码库
-->
<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" name="username" 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" name="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" name="verifycode" 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>
<!-- 加载layui模块-->
<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/admin/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/admin/home/index'},1000);
			}
		},'json');
	}
</script>
<?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;
	}

	// 加载数量
	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();
	}

	// 返回多条数据
	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);
				/*
		 $this->limit && $query = $query->limit($this->limit);
		等同于下面的语句
		if($this->limit)
		{
			$query = $query->limit($this->limit);
		}
		*/
		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 count(){
		return Db::name($this->table)->where($this->where)->count();
	}


	// 分页
	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(),'pages'=>$data->render());
	}

	// 添加
	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);
	}

	// 删除
	public function delete(){
		return Db::name($this->table)->where($this->where)->delete();
	}

	// 自减
	public function setDec($index,$value=1){
		$res = Db::name($this->table)->where($this->where)->setDec($index,$value);
		return $res;
	}
}


发布手记

热门词条