TP6 简单登录

书接上文!

1、在demo模块书写路由

use think\facade\Route;
/*
 * 登录
 * */
Route::get('login','Login/create');
Route::post('loginadd','Login/save');

2、创建资源控制器 模块名@控制器名

php think make:controller demo@Login       

3、创建模型 模块名@模型名

php think make:model demo@Logins

4、 在视图层 引入登录模板 视图 · ThinkPHP6.0完全开发手册 · 看云  引入视图命令

composer require topthink/think-view

 将 css img js  引入到 public 目录下 static文件中

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>登录</title>
    <link rel="stylesheet" href="/static/css/login.css">
    <!-- 作者QQ:951252660 -->
</head>

<body>
<form action="loginadd" method="post" enctype="multipart/form-data">
    <div class="login">
        <div class="center">
            <h1>Login</h1>
            <div class="inputLi">
                <strong>账户</strong>
                <input type="text" placeholder="请输入" name="accout">
            </div>
            <div class="inputLi">
                <strong>密码</strong>
                <input type="text" placeholder="请输入" name="pwd">
            </div>
            <div class="inputLi">
                <button>登录</button>
            </div>
            <p class="tip">关注17素材网</p>
        </div>
    </div>
</form>
</body>

</html>

6、Login 控制器中的 create 方法 展示登录页面

 
use think\facade\View;

 public function create()
    {
        //展示登录页面   
        //error 书写错误信息
       return View::fetch('login/login',['error'=>'']);
    }

7、书写验证器 进行账号密码的验证 

php think make:validate demo@Error

在验证器中

class Error extends Validate
{
    /**
     * 定义验证规则
     * 格式:'字段名' =>  ['规则1','规则2'...]
     *
     * @var array
     */
    protected $rule = [
        'accout|账号'=>'require',
        'pwd|密码'=>'require',
    ];

    /**
     * 定义错误信息
     * 格式:'字段名.规则名' =>  '错误信息'
     *
     * @var array
     */
    protected $message = [];
}

8、Login 控制器中的 save 中 添加方法

 public function save(Request $request)
    {
        try {
            //接值
            $data=$request->all();
            //验证
           validate(Error::class)->batch(true)->check([
                'username'  => $data['username'],
                'password' => $data['password'],
            ]);
            //连接数据库
            $obj = new \app\demo\model\User();
            $res = $obj->loginUser($data);
            if($res){
                if($res['password']==$data['password']){
    
                    //登录日志  登录成功记录登录信息
                    Log::write('用户'.$data['username'].'在'.date('Y-m-d H:i:s'.'登录成功'));
                    return success(200,'登录成功','');
                }else{
                    return fail(2001,'密码错误','');
                }
            }else{
                return fail(2001,'账号错误','');
            }

        } catch (ValidateException $e) {
            // 验证失败 输出错误信息
            $error=$e->getError();
            //返回错误信息
            return fail(2001,$error,'');
        }
    }

9、对应模型层

  public function loginUser($data){
        return $this->where('username',$data['username'])->find();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值