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 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)
- thinkphp前后端配合(thinkPHP+LayUI 流加载实现功能)
- thinkphp5框架怎么打开(thinkphp5.1框架模板布局与模板继承用法分析)
- thinkphp5配置入口路径(ThinkPHP5.1框架数据库链接和增删改查操作示例)
- php微信支付怎么做(ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解)
- thinkphp继承model如何使用(Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解)
- thinkphp5框架分析(thinkPHP5框架路由常用知识点汇总)
- thinkphp5分页数据怎么处理(TP5thinkPHP5框架实现显示错误信息及行号功能的方法)
- thinkphp表单提交不到数据(ThinkPHP5.1表单令牌Token失效问题的解决)
- thinkphp标签详解(thinkphp整合系列之极验滑动验证码geetest功能)
- thinkphp5表单系统(thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例)
- thinkphp5单例原理(Thinkphp5框架简单实现钩子Hook行为的方法示例)
- thinkphp5怎么设置当前的模块(thinkPHP5.1框架中Request类四种调用方式示例)
- thinkphp微信开发教程(微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- thinkphp5.0实例详解(ThinkPHP5&5.1框架关联模型分页操作示例)
- ()
- ()
- 800壮士拼死拖住30万日军 八佰 的真实历史,誓与阵地共存亡(800壮士拼死拖住30万日军)
- 演员陈创,火于 哮天犬 ,颠峰于 福贵 ,现状却令人唏嘘(演员陈创火于哮天犬)
- 幼小衔接-20以内看图读数 写数 数的组成练习题(幼小衔接-20以内看图读数)
- 你只要花上20天记单词,英语成绩就能从57提到100(你只要花上20天记单词)
热门推荐
- phpstudy服务器怎么设置(PHPStudy打开网页很慢的原因及解决方案)
- sql server2019无法连接到服务器(SQL Server常见问题及解决方法分享)
- docker导出日志(excel导出在docker环境中总是失败的问题)
- 防火墙如何设置ftp连接(浅谈防火墙对FTP的影响及故障排除分析)
- 小程序canvas不显示(小程序canvas中文字设置居中锚点)
- 面试如何回答 5年内职业规划是什么?
- 停止mysql服务命令(windows下实现定时重启Apache与MySQL方法)
- MongoDB聚合函数
- vue组件之间的通信(超详细的vue组件间通信总结)
- springcloud alibaba nacos linux配置的详细教程(springcloud alibaba nacos linux配置的详细教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9