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','成功啦');
}