前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Thinkphp5学习007-项目案例-登录页面的控制器

Thinkphp5学习007-项目案例-登录页面的控制器

作者头像
哆哆Excel
发布2022-10-25 14:28:22
3210
发布2022-10-25 14:28:22
举报
文章被收录于专栏:哆哆Excel

Thinkphp5学习007-项目案例-登录页面的控制器

在index模块中,新建index控制器,该控制器主要实现 :

1.显示登录页面

2.实现登录时的身份验证

3.验证码的使用

4.会话管理session的使用

5.数据库的操作

6.页面跳转

7.退出登录

一.新建用户数据表users

插入一个数据user=>yhd password=>123456

二.在控制器index.php中写入代码

代码语言:javascript
复制
<?php
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\Session;
/**
 * Index 控制器
 * 主要实现管理员登录,退出
 */
class Index extends Controller
{
    //显示登录页面
    public function index()
{
        return $this->fetch();
    }
 
    //身份验证
    public function dologin()
{
        $user = input('post.username');
        $pwd = input('post.password');
        $vcode = input('post.vcode');
        if (!captcha_check($vcode)) {
            $this->error('验证码输入错误');
        }
 
        $data = Db::name('users')->where('user', $user)->where('password', $pwd)->find();
        if (!$data) {
            $this->error('用户名或密码错误');
        }
        Session::set('admin', $user);
        $this->redirect('student/all');
    }
 
    //退出登录
    public function logout()
{
        Session::clear();
        $this->redirect('index/index/index');
    }
 
}

三.测试一下

1.验证码错误

2.用户名或密码错误

3.如果正确,则跳转$this->redirect('student/all');到控制器student中的全部查询方法all()

【知识点】

在dologin()方法中,有这样一个函数:

captcha_check()

它是tp5自带的一个助手函数,可以验证你输入的验证码是否正确

详见:tp5完全开发手册 “杂项-验证码-控制器验证”

有关数据库的操作

$data = Db::name('users')->where('user', $user)->where('password', $pwd)->find();

表示从users数据表中查询记录,查询条件是user字段和password字段,使用find()查询和select()查询结果是不一样的

find()查询:返回一维数组,只有一条记录

select()查询:返回二维数组,可以有多条记录

详见:tp5完全开发手册“数据库-查询构造器-查询数据”

if (!$data) {

$this->error('用户名或密码错误');

}

使用find()方法,如果没有查到数据,返回null

此时证明:用户输入的帐户和密码是错误的

在dologin()方法中,有如下代码:

Session::set('admin', $user);

这是会话管理(session),在一般情况下,只要涉及登录,当登录成功后,我们会把登录的帐户保存在会话中

为什么使用会话管理,我们在学习php基础开发中,已经讲过了,如果还不清楚,可以参见:

https://blog.csdn.net/wang740209668/article/details/52787886

tp5框架把会话管理封装成了一个类Session,有关它的使用,可以参见 tp5完全开发手册“杂项-session”

logout()方法主要实现:

清除会话,使用指令:Session::clear();

跳转页面到登录页面:$this->redirect('index/index/index');

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档