[thinkPHP5项目实战_23]管理员登录信息展示、登出和登录状态检测
来源:互联网 发布:大连商品交易所软件 编辑:程序博客网 时间:2024/04/30 23:39
1.管理员登录信息展示和修改
登录成功后需要在头部展示登录的管理员的名称信息,并且点击修改能跳转到修改页面进行操作
登录成功后,需要将用户的信息写入服务器的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,或密码不存在,返回3public 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控制器
<?phpnamespace 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
阅读全文
0 0
- [thinkPHP5项目实战_23]管理员登录信息展示、登出和登录状态检测
- [thinkPHP5项目实战_22]管理员登录
- thinkphp5检测用户登录状态
- ThinkPHP5开发(三)使用Behavior检测用户登录状态
- ThinkPHP5开发(三)使用Behavior检测用户登录状态
- [thinkPHP5项目实战_21]管理员添加、删除和修改
- [thinkPHP5项目实战_16]文章列表展示
- [thinkPHP5项目实战_27]前台文章内容展示
- 第三篇 CAS单点登录和登出
- 关于tornado实现登录和登出
- php和form来实现登录登出
- Asp.Net Core-登录和登出
- springmvc + shiro 登录登出
- springmvc + shiro 登录登出
- django 登录与登出
- Django 登录/登出 模块
- 普通用户登录和管理员登录区分
- Cookie登录项目实战
- Beginning Visual Studio for Mac.pdf英文原版 免费下载
- 多个版本的 Python 在使用中的灵活切换
- CXF服务端The prefix "jaxws" for element "jaxws:endpoint" is not bound.
- http与https的区别
- Hello, World!
- [thinkPHP5项目实战_23]管理员登录信息展示、登出和登录状态检测
- 2017/10/30 学习笔记
- 413. Arithmetic Slices
- wordpress disabled for security reasons in
- 归一化方法总结
- Learning Nagios, Third Edition.pdf 英文原版 免费下载
- 决策树(实践)
- Qt实现的局域网对战五子棋
- window下Python+Numpy+SciPy+MatPlotlib详细安装过程及可能遇到的问题