摘要:<?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">密 码</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;
}
}