thinkphp5表单系统(thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例)
类别:编程学习 浏览量:142
时间:2021-10-07 00:41:15 thinkphp5表单系统
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例本文实例讲述了thinkphp 5框架实现登陆,登出及session登陆状态检测功能。分享给大家供大家参考,具体如下:
1,访问http://localhost/tp5/admin.php时,判断有没有登陆:
想法:写一个父类,继承controller,然后定义一个初始化方法,在控制器调用时就判断是否登陆
|
<?php namespace app\Admin\controller; use think\Controller; use think\Session; class Basic extends Controller { //如果你的控制器类继承了\think\Controller类的话,可以定义控制器初始化方法_initialize,在该控制器的方法调用之前首先执行。 public function _initialize() { //判断有无admin_username这个session,如果没有,跳转到登陆界面 if (!session( 'admin_username' )){ return $this ->error( '您没有登陆' ,url( 'Login/login' )); } } } |
登陆界面:
|
<!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 >Document</ title > </ head > < body > < h1 >登陆</ h1 > < li > < form class = "m-t" role = "form" action = "{url('Login/login')}" method = "post" > < li class = "input-field" > < input id = "admin_username" type = "text" name = "admin_username" class = " validate" placeholder = "请输入用户名" required> < label for = "admin_username" >用户名</ label > </ li > < li class = "input-field" > < input id = "admin_password" type = "password" name = "admin_password" placeholder = "请输入密码" class = "validate" required> < label for = "admin_password" >密码</ label > </ li > < button type = "submit" class = "waves-effect red lighten-1 waves-light btn full-width " style = "margin-top:10px; height:40px;" >登 录</ button > </ form > </ li > </ body > </ html > |
登陆控制器:
|
<?php namespace app\Admin\controller; use think\Controller; use think\Session; use think\Request; use think\Db; class Login extends Controller{ public function login(){ //判断是否是post方法发送的数据:如果是则开始登陆 if (Request::instance()->isPost()){ $admin_username = input( 'post.admin_username' ); //接收前台用户名 $admin_password = input( 'post.admin_password' ); //接收前台密码 if ( empty ( $admin_username ) || empty ( $admin_password )){ $this ->error( "用户名或者密码不能为空!" ); } //从数据库读取数据 $admin_info = DB::name( 'admin' ) ->where( 'admin_username' , $admin_username ) ->find(); if ( empty ( $admin_info )){ $this ->error( '用户不存在,请重新登陆' ,url( 'Login/login' )); } else { if (md5( $admin_password )!= $admin_info [ 'admin_password' ]){ $this ->error( '密码不正确,请重新登陆' ,url( 'Login/login' )); } else { Session::set( 'admin_username' , $admin_username ); $this ->success( "登录成功!" ,url( 'Index/index' )); } } } else { //如果不是post,则返回登陆界面 return view( 'login' ); } } public function logout(){ session(null); //退出清空session return $this ->success( '退出成功' ,url( 'Login/login' )); //跳转到登录页面 } } |
如果失败,回到登陆页面;如果登陆成功,跳转到后台首页:
|
<?php namespace app\Admin\controller; use think\Controller; use think\Session; use think\View; //后台首页继承自登陆判断页面,每次加载都会先执行判断页面的代码 class Index extends Basic { public function index() { $view = new View(); $data = session( 'admin_username' ); $view ->assign( 'data' , $data ); //return view('index'); return $view ->fetch( 'index' ); } } |
后台首页面:
|
<!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 >Document</ title > </ head > < body > <!-- <h1>hello,{$Think.session.admin_username}</h1> --> < h1 >hello,{$data}</ h1 > < a href = "{:url('Login/logout')}" rel = "external nofollow" >退出登陆</ a > </ body > </ html > |
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/qq_32674347/article/details/81254604
您可能感兴趣
- thinkphp5开发小程序后台(PHP小程序支付功能完整版基于thinkPHP)
- thinkphp怎么输出二维值(thinkphp 表名 大小写 窍门)
- thinkphp微信开发实例(ThinkPHP框架下微信支付功能总结踩坑笔记)
- thinkphp分页效果怎样(thinkphp5+layui实现的分页样式示例)
- thinkphp伪静态实例(thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解)
- think php上传服务器(ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例)
- thinkphp框架多文件上传完整代码(Thinkphp5 自定义上传文件名的实现方法)
- thinkphp怎么整合微信支付(ThinkPHP框架实现的微信支付接口开发完整示例)
- thinkphp5怎么设置默认返回(thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结)
- thinkphp5.1 执行流程(Thinkphp5.0 框架的请求方式与响应方式分析)
- thinkphp前后端配合(thinkPHP+LayUI 流加载实现功能)
- thinkphp5 新增模块(Thinkphp5.0框架的Db操作实例分析连接、增删改查、链式操作等)
- thinkphp5对接支付宝扫码支付(ThinkPHP框架下整合支付宝支付功能图文教程)
- thinkphp快速入门手册(从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解)
- php微信支付怎么做(ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解)
- thinkphp标签详解(thinkphp整合系列之极验滑动验证码geetest功能)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
- 精英律师 廖佳敏封印恋情曝光,顾婕马失前蹄 你个老不死的(廖佳敏封印恋情曝光)
- 以家人之名广受好评,剧情生动引起观众共鸣,演员张新成圈粉无数(以家人之名广受好评)
热门推荐
- dedecms提示怎么去除(DEDECMS网站被挂马的解决办法)
- vue重置密码(Vue 两个字段联合校验之修改密码功能的实现)
- html样式中css怎么设置行高(CSS设置HTML元素的高度与宽度的各种情况总结)
- lnmp怎么连接服务器(LNMP系列教程之 解决sendmail不能发送邮件问题)
- css鼠标移动特效(在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果实例代码)
- sysbenchmysql性能跑分(MySQL性能压力基准测试工具sysbench的使用简介)
- php集成支付(ThinkPHP框架整合微信支付之刷卡模式图文详解)
- python数组矩阵操作(Python矩阵和Numpy数组的那些事儿)
- mysql常用的sql语句大全(mysql建表常用的sql语句汇总)
- sqlserver存储过程怎么写日志(SqlServer快速检索某个字段在哪些存储过程中sql 语句)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9