zeromemos
最好的学习方法就是输出所学的知识05实现用户登入功能
编辑Login.php控制器,加入一个check方法用于验证用户登入。
我们先在数据库里创建一个用户账号,密码用md5加密后填写,md5加密可以直接百度加密。
登入功能中要用到下面这几个类
use think\Request; //用于接收前端的请求
use app\admin\model\User; //引入创建的一个用户模型后面会创建
use think\facade\Session; //加入session类 用于储存用户登入状态
use think\captcha\Captcha; //用于验证码的验证
编辑后Login.php控制器如下,主要看check方法
fetch('login');
}
//验证用户身份
public function check(Request $request)
{
//设置status返回前端判断是否验证成功
$status = 0;
//获取表单提交的数据,并保存在变量中
$data = $request -> param();
$userName = $data['username'];
$password = md5($data['password']);
$validate = $data['validate'];
$captcha = new Captcha();
//在user表中进行查询:以用户为条件
$map = ['username'=> $userName];
$user = User::get($map);
//将用户名与密码分开验证
//如果没有查询到该用户
if (!$captcha->check($validate)){
//设置验证码不正确的提示信息
$message = '验证码不正确';
} elseif (is_null($user)) {
//设置提示信息
$message = '用户名不存在';
} elseif ($user -> password != $password) {
//设置密码不正确的提示信息
$message = '密码不正确';
} else {
//如果用户名和密码都通过了验证,表明是合法用户
//修改返回信息
$status = 1;
$message = '验证通过正在跳转';
//将用户登录的信息保存到session中,供其它控制器进行登录判断
Session::set('user_id', $userName);
Session::set('user_info',$user->toArray());
}
//返回验证是否成功及提示信息
return ['status'=> $status, 'message'=> $message];
}
}
在controller同级目录下创建一个model文件夹,在里面创建User.php模型,用于查询数据库,也是在上面的控制器中被引用的模型
User.php模型代码如下,直接继承下thinkphp的默认模型类即可,暂时什么都不用填写:
编辑前端中的代码,修改下底部的js代码,用于发送表单和接收后端返回的数据,修改后的js代码如下:
再提下Session存储路径是phpstudy_pro\Extensions\tmp\tmp下,内容图下图所示:
评论区
关于我们
本站主要用于记录个人学习笔记,网站开发中,如需以前站内资料请加QQ群272473835索取。注册账号仅提供回帖功能,可不注册!