计算机网络/计算机科学与应用/系统/运维/开发

ThinkPHP5.1cookie和session和闪存

Cookie操作

ThinkPHP采用think\facade\Cookie类提供Cookie支持

配置文件位于config/cookie.php 中,无须手动初始化,系统会自动调用之前进行Cookie初始化工作。

// +----------------------------------------------------------------------
// | Cookie设置
// +----------------------------------------------------------------------
return [
   // cookie 名称前缀
   'prefix'    => '',
   // cookie 保存时间
   'expire'    => 3600,
   // cookie 保存路径
   'path'      => '/',
   // cookie 有效域名
   // 设置baidu.com之后 所有二级域名共享cookie信息
   // 比如m.baidu.com  www.baidu.com
   'domain'    => '',
   //  cookie 启用安全传输
   'secure'    => false,
   // httponly设置
   'httponly'  => '',
   // 是否使用 setcookie
   'setcookie' => true,
];


# 设置
# 设置Cookie有效期为3600 秒
Cookie::set('name','value',3600);
cookie('name','value',3600);  助手函数

# 判断是否存在
Cookie::has('name')
cookie('?name') 助手函数

# 获取
Cookie::get('name');
cookie('name');  助手函数

# 删除
Cookie::delete('name');
cookie('name',null); 助手函数



操作实例如下:

// cookie操作
public function ck(){
   // 初始化
   cookie(['prefix' => 'think_', 'expire' => 3600]);

   // 设置cookie
   cookie('name','zhangsan',300);

   // 判断cookie是否存在
   dump(cookie('?name')); // bool(true)

   // 获取cookie
   dump(cookie('name')); // string(8) "zhangsan"

   // 删除cookie
   cookie('name',null);
   dump(cookie('?name'));  // 判断cookie是否存在

   // 清除所有,必须有前缀
   Cookie::clear('think_');
   cookie(null,'think_');
}

session

可以直接使用 think\facade\Session 类操作 Session

配置文件位于 config/session.php 文件中


return [
   'id'             => '',
   // SESSION_ID的提交变量,解决flash上传跨域
   'var_session_id' => '',
   // SESSION 前缀
   'prefix'         => 'think',
// memcache 表示 win和linux下都可以使用  memcached 表示linux可使用
   // 驱动方式 支持redis memcache memcached
   'type'           => '',
   // 是否自动开启 SESSION
   'auto_start'     => true,
];

#  赋值
Session::set('name','thikphp');
session('name','thinkphp');  助手函数

#  闪存
Session::flash('name','value');

#  判断是否存在
Session::has('name');
session('?name');  助手函数

# 取值
Session::get('name');
session('name');  助手函数

# 删除
Session::delete('name');
session('name',null);  助手函数

# 清空
Session::clear();
session(null); 助手函数

操作实例如下:


// session操作
public function cs(){

   // 设置
   session('name','李四');

   // 前后台session
   session('admin.user','张三');
   session('index.user','李四');

   // 判断是否存在
   dump(session('?name'));

   // 获取
   dump(session('name'));

   // 删除指定的session
   session('name',null);
   // 清除所有
   session('null');

   // 获取全部
   dump(session(''));
}


闪存:

# 定义好之后,在下一次http请求中获取到,第二次请求就没有了

# 闪存数据,下次请求之前有效,第一次设置  第二次获取 第三次消失

// 设置session 并且在下一次请求之前有效
Session::flash('name','value');


// 闪存的第一种方式
public function sc(){
   // 定义闪存 然后访问一次 在注释
   // \think\facade\Session::flash('success','登录成功');

   // 第二次http请求获取success闪存
   dump(session('success'));
}

// 闪存的第二种方式
public function sc2(){
   // 跳转并写下闪存信息
   return redirect(url('sc'))->with('success','成功啦');
}


cookie session 闪存 tp5.1

所谓坚持,就是从种子种下到开花结果需要等待的时间。

评论

^