abstract:總結(jié):本章課程主要學(xué)習(xí)到了登錄頁(yè)面的操作,從登錄頁(yè)面的制作,管理員表的設(shè)計(jì),數(shù)據(jù)庫(kù)方位類(lèi)的封裝,登錄功能的實(shí)現(xiàn),以及防止非法用戶(hù)訪(fǎng)問(wèn)多個(gè)功能,收貨最大的是關(guān)于登錄數(shù)據(jù)的驗(yàn)證,前端的驗(yàn)證以及后臺(tái)的驗(yàn)證,在操作的過(guò)程中因報(bào)錯(cuò)不明顯,找錯(cuò)誤占用的很多的時(shí)間,對(duì)于數(shù)據(jù)的驗(yàn)證收獲還是很大的。/********************* Account.php 登錄控制器*******
總結(jié):本章課程主要學(xué)習(xí)到了登錄頁(yè)面的操作,從登錄頁(yè)面的制作,管理員表的設(shè)計(jì),數(shù)據(jù)庫(kù)方位類(lèi)的封裝,登錄功能的實(shí)現(xiàn),以及防止非法用戶(hù)訪(fǎng)問(wèn)多個(gè)功能,收貨最大的是關(guān)于登錄數(shù)據(jù)的驗(yàn)證,前端的驗(yàn)證以及后臺(tái)的驗(yàn)證,在操作的過(guò)程中因報(bào)錯(cuò)不明顯,找錯(cuò)誤占用的很多的時(shí)間,對(duì)于數(shù)據(jù)的驗(yàn)證收獲還是很大的。
/********************* 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'=>'用戶(hù)名不能為空')));
}
if($password == ''){
exit(json_encode(array('code'=>1,'msg'=>'密碼不能為空')));
}
if($verifycode == ''){
exit(json_encode(array('code'=>1,'msg'=>'驗(yàn)證碼不能為空')));
}
if(!captcha_check($verifycode)){
exit(json_encode(array('code'=>1,'msg'=>'驗(yàn)證碼不正確')));
}
//驗(yàn)證用戶(hù)
$this->db = new SysDb;
$admin = $this->db->table('admins')->where(array('username'=>$username))->item();
if(!$admin){
exit(json_encode(array('code'=>1,'msg'=>'用戶(hù)不存在')));
}
if(md5($admin['username'].$password) != $admin['password']){
exit(json_encode(array('code'=>1,'msg'=>'密碼錯(cuò)誤')));
}
if($admin['status']==1){
exit(json_encode(array('code'=>1,'msg'=>'用戶(hù)已被禁用')));
}
//設(shè)置用戶(hù)session
session('admin',$admin);
exit(json_encode(array('code'=>0,'msg'=>'登錄成功')));
}
}
/********************* login.php 登錄頁(yè)面 **********************/
<html>
<head>
<title>后臺(tái)模板</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>后臺(tái)管理系統(tǒng)</h2>
</div>
<hr>
<div class="layui-form-item">
<label class="layui-form-label">用戶(hù)名</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">密 碼</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">驗(yàn)證碼</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;
// 獲取焦點(diǎn)
$('#username').focus();
// 直接回車(chē)登錄
$('input').keydown(function(e){
if(e.keyCode == 13){
dologin();
}
});
});
// 重新加載驗(yàn)證碼
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('請(qǐng)輸入用戶(hù)名',{'icon':2});
return;
}
if(password == ''){
layer.alert('密碼不能為空',{'icon':2});
return;
}
if(verifycode==''){
layer.alert('驗(yàn)證碼不能為空',{'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 權(quán)限控制器 ***************************/
<?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 首頁(yè)控制器 *****************************/
<?php
namespace app\admins\controller;
use think\Controller;
use Util\SysDb;
class Home extends Base{
public function index(){
return $this->fetch();
}
}