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表单系统(thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例)
- php微信支付怎么做(ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解)
- thinkphp5.1插件实现(Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例)
- 如何用thinkphp框架来写一个网站(php tpl模板引擎定义与使用示例)
- thinkphp表单提交不到数据(ThinkPHP5.1表单令牌Token失效问题的解决)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- thinkphp框架案例(thinkphp5.1框架容器与依赖注入实例分析)
- thinkphp5分页数据怎么处理(TP5thinkPHP5框架实现显示错误信息及行号功能的方法)
- think php上传服务器(ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例)
- thinkphp框架多文件上传完整代码(Thinkphp5 自定义上传文件名的实现方法)
- thinkphp5开发小程序后台(PHP小程序支付功能完整版基于thinkPHP)
- thinkphp5框架怎么设置(thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例)
- thinkphp5.0实例详解(ThinkPHP5&5.1框架关联模型分页操作示例)
- thinkphp3.2.3 接口开发(ThinkPHP3.2.3框架Memcache缓存使用方法实例总结)
- thinkphp使用说明(thinkphp框架使用JWTtoken的方法详解)
- thinkphp5设计权限(Thinkphp5.0 框架视图view的比较标签用法分析)
- 古代的鸽子是爱情的象征,并非和平的使者(古代的鸽子是爱情的象征)
- 一课译词 放鸽子(一课译词放鸽子)
- 终于来了,淘宝更改账户名测试中,快去看看你能不能修改(淘宝更改账户名测试中)
- 淘宝支持账号名修改,网友 终于可以 重新做人 了(淘宝支持账号名修改)
- 盘点那些年让人称奇的年终奖 最后一个赢辣条毫无悬念(盘点那些年让人称奇的年终奖)
- 你还没有升职吗 他竟因为几套激励理论,升职了(你还没有升职吗)
热门推荐
- ReturnUrl带多个参数,返回时只返回一个参数的解决方法
- C#中TryParse的用法
- web前端怎么设置容器(Web应用中设置Context Path案例详解)
- springbootdocker详解(Spring Boot 2.4 新特性之一键构建Docker镜像的过程详解)
- python怎么爬取excel数据(python爬取内容存入Excel实例)
- css选择器知识汇总(在Less中写IE的css hack的方法介绍)
- SQL Server无法连接远程数据库的解决方法
- 宝塔面板详细教程(使用宝塔面板建站时出现网页出现404错误怎么办?)
- php实现redis核心代码(PHP结合Redis+MySQL实现冷热数据交换应用案例详解)
- djangorestfulframework教程(Django restframework 源码分析之认证详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9