thinkphp5的入门学习(3)系统登录的相关设置
来源:互联网 发布:ubuntu挂起后无法唤醒 编辑:程序博客网 时间:2024/06/05 16:53
1.输入验证码
首先下载验证码的扩展包,并放在下图的位置
在html前台页面写法如下
<div class="loginbox-textbox"> <input class="form-control" placeholder="code" name="code" style="margin:10px 0;width:80px;float:left;" type="text"> <img style="float:left; cursor:pointer;" src="{:captcha_src()}" alt="captcha" onclick="this.src='{:captcha_src()}?'+Math.random();" /> </div>
在app下的config.php最下面根据文档,配置如下图
验证的地方和函数如下图 利用model中的Admin.php进行验证
2.填写已有账号密码登陆系统
首先在model(用于连接数据库)文件中的Admin.php中创建函数login($data);
如下
<?phpnamespace app\admin\model;use think\Model;use think\Db;class Admin extends Model{ public function login($data){//在登陆端接受用户输入的信息 $captcha = new \think\captcha\Captcha(); if (!$captcha->check($data['code'])) {//验证码验证 return 4; } $user=Db::name('admin')->where('username','=',$data['username'])->find();//读取数据库中用户名和密码(这里的密码默认没有被md5加密) if($user){//如果user存在 if($user['password'] == ($data['password'])){//如果密码相等 session('username',$user['username']);//将登陆信息写入session session('uid',$user['id']); return 3; //信息正确 }else{ return 2; //密码错误 } }else{ return 1; //用户不存在 } }}
在controller文件夹中创建Login.php控制器,如下代码
<?phpnamespace app\Admin\controller;use think\Controller;use app\admin\model\Admin;//接受来自model中Admin的函数class Login extends Controller{ public function index() { if(request()->isPost()){//如果是post获取数据则 $admin=new Admin(); $data=input('post.');//令输入的数据存入$data数组中 $num=$admin->login($data);//引用model中admin/login函数 if($num==3){ $this->success('信息正确,正在为您跳转...','index/index');//成功就跳转主页 }elseif($num==4){ $this->error('验证码错误'); } else{ $this->error('用户名或者密码错误'); } } return $this->fetch('login');//没有填写或其他错误重新加载login页面 }}
在view/login/login.htm中代码如下
<div class="loginbox-textbox"> <input class="form-control" placeholder="password" name="password" type="password"> </div> <div class="loginbox-textbox"> <input class="form-control" placeholder="code" name="code" style="margin:10px 0;width:80px;float:left;" type="text"> <img style="float:left; cursor:pointer;" src="{:captcha_src()}" alt="captcha" onclick="this.src='{:captcha_src()}?'+Math.random();" /> </div> <div class="loginbox-submit"> <input class="btn btn-primary btn-block" value="Login" type="submit"> </div>
3.登录系统(未登录直接跳转至登录页)
如果用户知道主页域名,绕过登陆页直接加载主页怎么办?
这时候需要一个父类,当主页的各种驱动器都继承这个父类,用于在打开该页面时进行登陆检查,
如下图所示
Base.php控制器如下
利用session检查有没有登陆
4.系统显示登录信息-退出系统-修改密码
在系统登录信息中利用{$Request.session.username},得到登陆名称
在”退出系统”common/top.html中代码如下
退出登陆调用的是controller/Admin.php控制器中的logout()函数
public function logout(){ session(null);//清空session $this->success('退出成功!','Login/index'); }}
阅读全文
0 0
- thinkphp5的入门学习(3)系统登录的相关设置
- thinkphp5的入门学习
- ThinkPHP5中路由的设置
- thinkphp5的入门学习(2)不同数据添加的规则
- thinkphp5的入门学习(1)引入数据列表及其操作
- thinkphp5.0学习(三):配置相关
- thinkphp5 学习的一些注意事项
- thinkphp5学习入门
- 预装系统的相关设置
- ThinkPHP5的安装使用/tp5快速入门
- linux系统登录方式的设置方法
- Mac系统下的远程登录设置
- 设置登录系统时不显示上次登录的用户名
- 设置电脑系统自动登录(域登录)的方法
- 6410的系统时钟设置(中)---相关寄存器介绍
- 系统功能显示相关的设置
- IOS入门学习笔记(简单的登录界面)
- Laravel5学习系列(一)登录系统及入门知识
- JSON数组
- Tensorflow-GPU版本安装(Ubuntu14.04LTS+Cuda8+Quadro K1200)
- Objective-C学习笔记(二)
- 设计模式深入浅出(三)接口适配——桥接
- lucene索引的增删改查/lucene索引维护
- thinkphp5的入门学习(3)系统登录的相关设置
- 求一个数在计算机中存储的二进制补码的c语言程序
- 【POJ3683】Priest John's Busiest Day (2-sat输出任意解)
- Selenium phantomjs与spynner等待网页加载完成方式总结
- JavaScriptDOM练习之无缝轮播
- 剑指offer之十九---从上往下打印二叉树
- 深度学习目标检测之RPN-based方法
- linux档案与目录管理1
- 如何在ACM中学习