[thinkPHP5项目实战_23]管理员登录信息展示、登出和登录状态检测
2017-10-30 00:48
459 查看
1.管理员登录信息展示和修改
登录成功后需要在头部展示登录的管理员的名称信息,并且点击修改能跳转到修改页面进行操作
登录成功后,需要将用户的信息写入服务器的session中,从session中获取用户名和id
thinkPHP5的session使用方法:https://www.kancloud.cn/manual/thinkphp5/126166
在登录的model中成功后写入session:
在头部获取session中对应的值展示出来;
点击修改跳转到修改的控制器并将存在session中用户存的值传到对应控制器中
2.登出
点击登录,则清空用户的session信息,并跳转到登录页面
在登录控制器中添加登出操作方法:
3.登录状态监测
用户打开等登出外的任何页面都需要对用户是否登录进行监测,因此每个页面对应的控制器操作方法执行之前都要执行一次登录检测
thinkPHP5提供了控制器初始化方法_initialize,在该控制器的方法调用之前首先执行https://www.kancloud.cn/manual/thinkphp5/118049
新建Basic控制器
比如Admin控制器继承
继承了Basic控制器再的其他控制器无需引入think\Controller
登录成功后需要在头部展示登录的管理员的名称信息,并且点击修改能跳转到修改页面进行操作
登录成功后,需要将用户的信息写入服务器的session中,从session中获取用户名和id
thinkPHP5的session使用方法:https://www.kancloud.cn/manual/thinkphp5/126166
在登录的model中成功后写入session:
<?php namespace app\admin\model; use think\Model; class Login extends Model { //登录数据处理函数 //获取控制器传过来的登录名和密码,根据登录名在数据库中获取密码 //若密码一样则给控制器返回1,若密码存在但是不一样返回2,或密码不存在,返回3 public function login($username,$password){ $admin = \think\DB::name('admin')->where('username','=',$username)->find(); if($admin){ if($admin['password'] === md5($password)){ //将登录id和名称存入session \think\Session::set('id',$admin['id']); \think\Session::set('username',$admin['username']); return 1; }else{ return 2; } }else{ return 3; } } } ?>
在头部获取session中对应的值展示出来;
点击修改跳转到修改的控制器并将存在session中用户存的值传到对应控制器中
<div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav navbar-right"> <li><a href="#">管理员<?php echo session('username');?></a></li> <li><a href="{:url('Admin/edit',array('id'=>session('id')))}">修改密码</a></li> <li><a href="{:url('Login/logout')}">退出</a></li> </ul> </div>
2.登出
点击登录,则清空用户的session信息,并跳转到登录页面
在登录控制器中添加登出操作方法:
public function logout(){ session(null);//退出清空session return $this->success('退出成功',url('login'));//跳转到登录页面 } }
3.登录状态监测
用户打开等登出外的任何页面都需要对用户是否登录进行监测,因此每个页面对应的控制器操作方法执行之前都要执行一次登录检测
thinkPHP5提供了控制器初始化方法_initialize,在该控制器的方法调用之前首先执行https://www.kancloud.cn/manual/thinkphp5/118049
新建Basic控制器
<?php namespace app\admin\controller; use think\Controller; class Basic extends Controller { //定义控制器初始化方法_initialize,在该控制器的方法调用之前首先执行。 public function _initialize() { if(!session('id')){ return $this->error('请先登录系统',url('Login/login')); } } }然后将后台模块中出登录控制器之外的所有控制器都继承该控制器的操作方法
比如Admin控制器继承
namespace app\admin\controller; class Admin extends Basic
继承了Basic控制器再的其他控制器无需引入think\Controller
相关文章推荐
- [thinkPHP5项目实战_22]管理员登录
- ThinkPHP5开发(三)使用Behavior检测用户登录状态
- [thinkPHP5项目实战_21]管理员添加、删除和修改
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
- 使用THinkPHP 3.2实现登录注册及信息展示
- thinkphp5检测用户登录状态
- [thinkPHP5项目实战_16]文章列表展示
- 项目实战:zabbix监控MySQL状态、服务信息 推荐
- 23讲项目实战:ps切图、wordpress后台登录界面更换
- [thinkPHP5项目实战_27]前台文章内容展示
- [thinkPHP5项目实战_25]前台文章列表展示
- 项目实战:创建模板,监控Nginx状态、服务信息
- ThinkPHP5开发(三)使用Behavior检测用户登录状态
- 商城项目实战33:单点登录系统SSO实现
- Keepalived+Nginx反向代理检测集群节点状态企业实战
- MVVM项目实战之路-搭建一个登录界面
- 【SSH项目实战】国税协同平台-18.信息发布管理需求分析&CRUD
- 【WEB API项目实战干货系列】- API登录与身份验证(三)
- 【springmvc+mybatis项目实战】杰信商贸-23.重点知识回顾