1.参考上图我们首先需要的就是先走通逻辑;
2.我们需要在数据库中简历字段,链接数据库,在进行下一步操作
3.首先在控制器下新建admin模块
(我的是多应用模式,如果不是多应用模式直接在controller下新建即可)
Login.php下的代码
namspace app\admin\controller;
class Login exetends BaseController
{
public function index()
{
//安装视图才可以,
//这个是跳转到view下的index.html
//安装视图后创建view目录放入对应的html文件
return View::fetch()
}
//登陆时检测密码是否正确
public function check(){
//判断请求方式是不是POst
if($this->request()->is_Post()){
}
//show方法在app\common下自行定义才可以使用
//config代表config目录下
//status代表status文件自行创建定义状态码
return show(config("status.error"),"请求方式不对")
}
//判断提交的表单与数据库是否比对
$usernam = $this->request->param("username","","trim");
$password= $this->request->param("password","","trim");
//验证码自行去官网安装
//安装后需要在app\middleware中开启session才可以使用
$captcha= $this->request->param("captcha","","trim");
//判断username password captcha 是否为空
if(empty($username) || empty($password) || empty($captcha)){
return show(config("status.error"),"参数不能为空");
}
//创建通用验证码9997
if($captcha == 9997){
return show(config("status.success"),"登录成功");
}
//校验验证码是否等于session中的验证码
if(!captcha_check($captcha))
{
show(config("status.error"),"验证码校验失败");
}
//获取user表数据
$adminUserObj = new AdminUser();
$adminUser = $adminUserObj -> getAdminUserByUsername($username);
//判断用户表数据是否为空,以及数据库表的状态
if(empty($adminUser) || $adminUser->status != config("status.mysql.table_normal")){
return show(config("status.error"),"该用户不存在");
}
$adminUser = $adminUser -> toArray();
//判断密码是否正确
if ($adminUser['password'] != md5($password."_xiaobai_abc"))
{
return show(config("status.error"),"密码错误");
}
$updateData = [
"last_login_time" => time(),
"last_login_ip" => request()->ip(),
"update_time" => time(),
];
$res = $adminUserObj->updateById($adminUser['id'],$updateData);
if (empty($res)){
return show(config("status.error"),"登录失败");
}
}catch (\Exception $e){
//todo 记录日志 $e->getMessage();
return show(config("status.success"),"内部异常登录失败");
}
//记录到session
session(config("admin.session_admin"),$adminUser);
return show(config("status.success"),"登录成功");
}
}
4.模型下的数据AdminUser
模型应该在common文件下
<?php
namspace app/common/model/mysql;
use think/model
class AdminUser exetends Model
{
//判断用户是否存在
public function getAdminUserByusernam($usernam){
if(empty($username)){
return false;
}
$result = [
"username" => trim($username),
];
return $this->where($result)->find()
}
//根据模型更新数据库中登录操作
publice function updateById($id,$data)
{
//将id转换
$id = intval($id),
//判断id,data以及data是不是数组
if(empty($id) || empty($data) || !is_Post($data))
{
return false;
}
$where = [
"id" => $id,
];
$this->where($id)->save($data);
}
}
5.验证码写了个通用验证码,但是我们还是要去调用tp自带验证码判断,安装验证码命令
composer require topthink/think-captcha
详情可参考《tp6官方文档》
有问题参考”tp6框架验证码-----captcha“
在controller下创建Verify控制器
class Verify {
public function index()
{
return Captcha::create("verify"); //verify 是引入的自定义验证码,参数名自行配置
}
}
6.index控制器下视图如果没有安装则会有问题
<?php
namespace app\admin\controller;
use app\BaseController;
use think\facade\View;
class Index extends BaseController
{
public function index(){
return View::fetch();
}
}
登录第一部分结束敬请期待下一张
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。