m_Orchestrate learning system---三、session使用完整流程是什么

m_Orchestrate learning system---三、session使用完整流程是什么

一、总结

一句话总结:

1、在登录成功之后设置session和cookie

2、在公共控制器里面使用session和cookie判断是否已经登录(做基本的权限控制)

3、在视图页面调用session来显示登录

4、退出登录之后,把cookie和session都清空

 

1、thinkphp中session和cookie的使用的完整流程是怎样?

1、在登录成功之后设置session和cookie
 1 <?php
 2 namespace app\index\controller;
 3 use think\Loader;  4 use think\Validate;  5  6 use app\index\controller\Base;  7  8 class Login extends Base  9 { 10 //登录 11 public function login() 12  { 13 if(request()->isPost()){ 14 //1、获取用户从页面上传过来的账号和密码 15 $data=input('post.'); 16 // dump($data);die; 17  //2、对获取的数据进行验证 18 $captcha = new \think\captcha\Captcha(); 19 if (!$captcha->check($data['code'])) { 20 $this->error('验证码错误'); 21  } 22 $validate = Loader::validate('Login'); 23 if(!$validate->scene('login')->check($data)){ 24 $this->error($validate->getError()); die; 25  } 26 27 //3、在数据库中查找此用户和密码,找到则登录成功,没找到则登录失败 28 $res=db('user')->where('username',$data['username'])->where('password',md5($data['password']))->where('status',$data['status'])->find(); 29 //4、如果在数据库中查找到数据,则判断是老师还是学生,跳转到相应的页面去,没有就直接返回错误界面 30 if($res){ 31 //5、登录成功,将数据存入cookie和session 32  //5.1、将登录信息写入session 33 session('id', $res['id']); 34 session('username', $res['username']); 35 session('password', $res['password']); 36 //5.2、设置cookie 37 cookie('id', $res['id'], 3600); 38 cookie('username', $res['username'], 3600); 39 cookie('password', $res['password'], 3600); 40 if($data['status']) $this->success("即将跳转到老师界面!!",url('teacher/index/index')); 41 else $this->success("即将跳转到学生界面!!",url('student/index/index')); 42 }else{ 43 $this->error('用户名或者密码错误或者未注册!!'); 44  } 45 46  } 47 48 return view(); 49  } 50 51 }

 

2、在公共控制器里面使用session和cookie判断是否已经登录(做基本的权限控制)
 1 <?php
 2 namespace app\teacher\controller;
 3 
 4 use think\Controller;  5  6 class Base extends Controller  7 {  8 /**  9  * 登录之后显示正确登录的用户 10  * 0、将登录的用户信息写入session 11  * 1、获取登录的用户的数据 12  * 2、将获取的数据传递到top.htm页面 13  * @return [type] [description] 14 */ 15 public function _initialize() 16  { 17 if(!session('username')){ 18 //如果cookie存在的话 19 if(cookie('username')){ 20 //设置session 21 session('id', cookie('id')); 22 session('username',cookie('username')); 23 session('password', cookie('password')); 24 // dump(cookie('username'));die; 25 return; 26  } 27 $this->error('您尚未登录系统',url('index/login/login')); 28  } 29  } 30 }

 

 

3、在视图页面调用session来显示登录
<span class="tpl-header-list-user-nick">{$Request.session.username}</span> <span class="tpl-header-list-user-ico"> <img src="__TEACHER__/assets/img/user01.png"></span>

 

 4、退出登录之后,把cookie和session都清空
 1 <?php
 2 namespace app\teacher\controller;
 3 
 4 use think\Controller;  5  6 class Base extends Controller  7 {  8 //退出登录操作  9 public function logout(){ 10 session(null); 11 cookie('id', null); 12 cookie('username', null); 13 cookie('password', null); 14 //退出登录清空session之后要成功跳转 15 $this->success('退出系统成功',url('index/index/index')); 16  } 17 }

 

 

 

二、内容在总结中

 

项目地址

fry404006308/m_Orchestrate: m_Orchestrate
https://github.com/fry404006308/m_Orchestrate

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/8892123.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值