|
- <?php
- namespace app\admin\controller;
- use think\Controller;
- use think\Db;
- use think\Request;
- use app\admin\model\Admins;
- header("Content-type: text/html; charset=utf-8");
- class Account extends Controller
- {
- public function login()
- {
- return $this->fetch();
- }
- public function dologin(Request $request)
- {
- // 在model之前 进行db直接操作的测试
- // $lma = $request->param();
- // $lmb = Db::table('admins')
- // ->where([
- // 'username' =>['=',$request->param('username')],
- // 'password' =>['=', MD5($request->param('password'))]
- // ])
- // ->find();
-
- // return $lmb? $lma:false;
-
- // $where = ([
- // 'username' =>['=',$request->param('username')],
- // 'password' =>['=', MD5($request->param('password'))],
- // ]);
- // 非空验证
- if(!$request->param('username')){
- exit( json($code=1,$msg='用户名不能为空'));
- }
- if(!$request->param('password')){
- exit( json($code=1,$msg='密码不能为空'));
- }
- if(!$request->param('vercode')){
- exit( json($code=1,$msg='验证码不能为空'));
- }
- // 验证码验证
- if(!captcha_check( $request->param('vercode'))){
- //验证失败
- exit( json($code=1,$msg='验证码不正确'));
- }
- // 只根据用户名拿数据
- $where = function ($query) use($request){
- $query->where([
- 'username' =>['=',$request->param('username')],
- ]);
- };
- //在这有个坑点 返回值 只能是数组、字符串、不能反回一个对象
- $lmb = admins::get($where);
-
- //登录用户验证
- if(!$lmb){
- exit( json($code=1,$msg='登录失败,该用户不存在'));
- }
- // 登录用户密码验证
- if( MD5($request->param('password')) !== $lmb->getData()['password'] ){
- exit( json($code=1,$msg='登录失败,密码错误'));
- }
- // 判断该用户是否被禁用
- if($lmb->getData()['status']==1){
- exit( json($code=1,$msg='该用户已被管理员禁用'));
- }
-
- // 成功登陆 缓存用户登录信息
- session('admin',$lmb->getData());
- $code =0;
- $msg = '登陆成功等待跳转 return json($code=0,$msg,2,$lmb);
-
- }
- public function ts()
- {
- //value 字段 默认值
- dump(
- Db::table('admins')
- ->where([
- 'username'=>['=','admin'],
- 'id' =>['=',1]
- ])
- ->find() //这个find() 只能查询到一条结果
- );
- }
- public function tk()
- {
- $where = function ($query){
- $query->where([
- 'id' =>['=',1],
- // 'username' =>['=','admin'],
- // 'id' =>['=',1],
- ]);
- };
- $lmb = admins::get($where);
- dump($lmb->getData()['username']);
- }
- }
复制代码
再贴一个验证码的前端代码代码
login.html 【容我精炼一下】- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>登入 - layuiAdmin</title>
- <meta name="renderer" content="webkit">
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <link rel="stylesheet" href="__CSS__/layui/css/layui.css?v=6" media="all">
- <link rel="stylesheet" href="__CSS__/style/admin.css" media="all">
- <link rel="stylesheet" href="__CSS__/style/login.css" media="all">
- </head>
- <body>
- <div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login" style="display: none;">
- <div class="layadmin-user-login-main">
- <div class="layadmin-user-login-box layadmin-user-login-header">
- <h2>layuiAdmin</h2>
- <p>layui 官方出品的单页面后台管理模板系统e</p>
- </div>
- <div class="layadmin-user-login-box layadmin-user-login-body layui-form">
- <div class="layui-form-item">
- <label class="layadmin-user-login-icon layui-icon layui-icon-username" for="LAY-user-login-username"></label>
- <input type="text" name="username" id="LAY-user-login-username" lay-verify="required" placeholder="用户名" class="layui-input">
- </div>
- <div class="layui-form-item">
- <label class="layadmin-user-login-icon layui-icon layui-icon-password" for="LAY-user-login-password"></label>
- <input type="password" name="password" id="LAY-user-login-password" lay-verify="required" placeholder="密码" class="layui-input">
- </div>
- <div class="layui-form-item">
- <div class="layui-row">
- <div class="layui-col-xs7">
- <label class="layadmin-user-login-icon layui-icon layui-icon-vercode" for="LAY-user-login-vercode"></label>
- <input type="text" name="vercode" id="LAY-user-login-vercode" lay-verify="required" placeholder="图形验证码" class="layui-input">
- </div>
- <div class="layui-col-xs5">
- <div style="margin-left: 10px;">
- <img src="{:captcha_src()}" class="layadmin-user-login-codeimg" onclick="this.src='/admin.php/captcha?id='+Math.random()" id="lm-yz" alt="验证码" title="点击刷新" >
- </div>
- </div>
- </div>
- </div>
- <div class="layui-form-item" style="margin-bottom: 20px;">
- <input type="checkbox" name="remember" lay-skin="primary" title="记住密码">
- <a href="forget.html" class="layadmin-user-jump-change layadmin-link" style="margin-top: 7px;">忘记密码?</a>
- </div>
- <div class="layui-form-item">
- <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="LAY-user-login-submit">登 入</button>
- </div>
- <div class="layui-trans layui-form-item layadmin-user-login-other">
- <label>社交账号登入</label>
- <a href="javascript:;">
- <i class="layui-icon layui-icon-login-qq"></i>
- </a>
- <a href="javascript:;">
- <i class="layui-icon layui-icon-login-wechat"></i>
- </a>
- <a href="javascript:;">
- <i class="layui-icon layui-icon-login-weibo"></i>
- </a>
- <a href="reg.html" class="layadmin-user-jump-change layadmin-link">注册帐号</a>
- </div>
- </div>
- </div>
- <div class="layui-trans layadmin-user-login-footer">
- <p>? 2018
- <a href="http://www.layui.com/" target="_blank">layui.com</a>
- </p>
- <p>
- <span>
- <a href="http://www.layui.com/admin/#get" target="_blank">获取授权</a>
- </span>
- <span>
- <a href="http://www.layui.com/admin/pro/" target="_blank">在线演示</a>
- </span>
- <span>
- <a href="http://www.layui.com/admin/" target="_blank">前往官网</a>
- </span>
- </p>
- </div>
- <!--<div class="ladmin-user-login-theme">
- <script type="text/html" template>
- <ul>
- <li data-theme=""><img src="{{ layui.setter.base }}style/res/bg-none.jpg"></li>
- <li data-theme="#03152A" style="background-color: #03152A;"></li>
- <li data-theme="#2E241B" style="background-color: #2E241B;"></li>
- <li data-theme="#50314F" style="background-color: #50314F;"></li>
- <li data-theme="#344058" style="background-color: #344058;"></li>
- <li data-theme="#20222A" style="background-color: #20222A;"></li>
- </ul>
- </script>
- </div>-->
- </div>
- <script src="__JS__/layui/layui.js"></script>
- <script>
- layui.config({
- base: '__JS__/' //静态资源所在路径
- }).extend({
- index: 'lib/index' //主入口模块
- }).use(['index', 'user'], function () {
- var $ = layui.$
- , setter = layui.setter
- , admin = layui.admin
- , form = layui.form
- , router = layui.router()
- , search = router.search;
- form.render();
- //提交
- form.on('submit(LAY-user-login-submit)', function (obj) {
- $('#lm-yz').click(); //刷新验证码
- console.log(obj.field);
- $.ajax({
- type: "GET",
- url: 'http://www.laomo.com/admin.php/admin/account/dologin',
- dataType: "json",
- data: obj.field,
- type:'post',
- success: function (e) {
- console.log(e)
- },
- error: function (err) {
- console.log(err)
- }
- });
- return false;
-
- });
- });
- </script>
- </body>
- </html>
复制代码
再表述一下验证码的 实现,
安装完后,在 config/extra/captcha.php 中配置验证码信息; 【注意了 这个文件名是官方要求】- <?php
- // <!-- 配置验证码 -->
- return [
- // 验证字符集合
- 'codeSet' => '56789',
- // 验证码字体大小
- 'fontSize' => 36,
- // 验证码位数
- 'length' => 4,
- // 关闭验证码杂点
- 'useNoise' => false,
- ];
复制代码
|
|