ThinkPHP5.0下,利用Cookie和Session来存储用户信息

本文详细介绍了使用TP5框架对Cookie和Session进行封装的方法,包括配置参数、登录验证流程及会话管理。通过实例展示如何设置Cookie和Session的过期时间、前缀等属性。

利用tp5框架封装好的Cookie类和Session类。若发现过期时间没有生效,可以试试清除缓存。

登录页面Login.php

<?php
/**
* Created by PhpStorm.
* User: zjl
* Date: 2018/11/1
* Time: 15:21
*/
namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\Session;
use think\Cookie;

class Login extends Controller{
public function index(){
return $this->fetch('index');
}
public function login()
{
$request = Request::instance();
//判断post过来的数据是否被提交过来
if($request->isPost()){
$data = $request->param();
//对提交的数据进行判断
if(empty($data['user']) || empty($data['password'])){
exit(json_encode(array('status'=>0,'message'=>'用户名或密码不能为空')));
}
//对数据进行过滤
$username = addslashes(trim(stripslashes($data['user'])));
$password = addslashes(trim(stripslashes($data['password'])));
$config_session = [
'prefix' => 'admin', // session 名称前缀
'expire' => 7200, // session 过期时间
'use_trans_sid' => 1, //跨页传递
'use_only_cookies' => 0, //是否只开启基于cookies的session的会话方式
];
$session = new Session();
$session->init($config_session);
$session->prefix();
$session->set('user',$username,'admin');
$session->set('password',$password,'admin');
$config_cookie = [
'prefix' => 'admin', // cookie 名称前缀
'expire' => 1800, // cookie 保存时间
'path' => '/', // cookie 保存路径
'domain' => '', // cookie 有效域名
'secure' => false, // cookie 启用安全传输
'httponly' => false, // httponly 设置
'setcookie' => true, // 是否使用 setcookie
];
$cookie = new Cookie();
$cookie->init($config_cookie);
$cookie->prefix();
$cookie->set("sessionId",session_id());
$this->redirect('/index.php/admin/Index/index');
}
}
}

主页面Index.php
<?php
/**
* Created by PhpStorm.
* User: zjl
* Date: 2018/11/1
* Time: 15:21
*/
namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\Session;
use think\Cookie;

class Index extends Controller{
public function index(){
if(Cookie::has("sessionId",'admin')){
if(Session::has('user','admin') && Session::has('password','admin')){
$user = Session::get('user','admin');
$password = Session::get('password','admin');
$this->assign('user',$user);
$this->assign('password',$password);
return $this->fetch('index');
}else{
//'session过期了';
$this->redirect('/index.php/admin/Login/index');

}
}else{
//'cookie过期了';
$this->redirect('/index.php/admin/Login/index');
}
}
public function logout()
{
Session::flush();
Cookie::clear('admin');
$this->redirect('admin/Login/index');

}
}

转载于:https://www.cnblogs.com/fish-minuet/p/9903068.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值