thinkphp session支持
系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成,该函数可以完成Session的设置、获取、删除和管理操作。
session初始化设置
如果session方法的第一个参数传入数组则表示进行session初始化设置,例如:
session(array('name'=>'session_id','expire'=>3600));
支持传入的session参数包括:
| 参数名 | 说明 |
|---|---|
| id | session_id值 |
| name | session_name 值 |
| path | session_save_path 值 |
| prefix | session 本地化空间前缀 |
| expire | session.gc_maxlifetime 设置值 |
| domain | session.cookie_domain 设置值 |
| use_cookies | session.use_cookies 设置值 |
| use_trans_sid | session.use_trans_sid 设置值 |
| type | session处理类型,支持驱动扩展 |
Session初始化设置方法无需手动调用,在Think\App类的初始化工作结束后会自动调用,通常项目只需要配置SESSION_OPTIONS参数即可,SESSION_OPTIONS参数的设置是一个数组,支持的索引名和前面的session初始化参数相同。
默认情况下,初始化之后系统会自动启动session,如果不希望系统自动启动session的话,可以设置SESSION_AUTO_START为false,例如:
'SESSION_AUTO_START' =>false
关闭自动启动后可以项目的公共文件或者在控制器中通过手动调用session_start或者session('[start]')启动session。
session赋值
Session赋值比较简单,直接使用:
session('name','value'); //设置session
3.2.3版本开始,session赋值操作支持二维,例如:
session('user.user_id',10); //设置session
session取值
Session取值使用:
$value = session('name');// 获取所有的session 3.2.2版本新增$value = session();
3.2.3版本开始支持二维数组取值,例如:
$value = session('user.user_id');
session删除
删除某个session的值使用:
session('name',null); // 删除name
3.2.3版本开始支持删除二维数组,例如:
session('user.user_id',null); // 删除session
要删除所有的session,可以使用:
session(null); // 清空当前的session
session判断
要判断一个session值是否已经设置,可以使用
// 判断名称为name的session值是否已经设置session('?name');
3.2.3版本开始,支持判断二维数组,例如:
session('?user.user_id');
session管理
session方法支持一些简单的session管理操作,用法如下:
session('[操作名]');
支持的操作名包括:
| 操作名 | 含义 |
|---|---|
| start | 启动session |
| pause | 暂停session写入 |
| destroy | 销毁session |
| regenerate | 重新生成session id |
使用示例如下:
session('[pause]'); // 暂停session写入session('[start]'); // 启动sessionsession('[destroy]'); // 销毁sessionsession('[regenerate]'); // 重新生成session id
本地化支持
如果在初始化session设置的时候传入prefix参数或者单独设置了SESSION_PREFIX参数的话,就可以启用本地化session管理支持。启动本地化session后,所有的赋值、取值、删除以及判断操作都会自动支持本地化session。
本地化session支持开启后,生成的session数据格式由原来的 $_SESSION['name'] 变成 $_SESSION['前缀']['name']。大理石构件哪家好
session handler支持
初始化session设置的时候如果传入了type参数或者设置了SESSION_TYPE参数的话,则会自动引入对应的Session处理驱动,驱动目录位于Library/Think/Session/Driver目录下面(详见扩展部分)。
thinkphp session支持的更多相关文章
- thinkphp session如何取数组
thinkphp session如何取数组 session('user_auth.username'); 搞定!
- 为lumen添加session支持
为lumen添加session支持,同时配置全局函数csrf_token可用 首先laravel和lumen框架的版本要一致,我这里版本都是5.4 1.复制laravel框架config目录下的ses ...
- ThinkPHP可以支持直接使用字符串作为查询条件
ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用数组或者对象来作为查询条件,因为会更加安全. 大理石平台哪家好 一.使用字符串作为查询条件 这是最传统的方式,但是安全性不高, ...
- [转]Nginx+ThinkPHP不支持PathInfo的解决办法
FROM : http://www.4wei.cn/archives/1001174 应集团要求,公司的服务器全收到集团机房统一管理了,失去了服务器的管理配置权限. 杯具就此开始. 首先要解决文件大小 ...
- ThinkPHP - session 数据库存储驱动
命名格式: Session + 驱动名称 + .class.php 所有的方法要有,但不一定要实现. <?php /** * @category Extend * @package Extend ...
- thinkphp session db配置
这篇文章主要介绍了ThinkPHP实现将SESSION存入MYSQL的方法,需要的朋友可以参考下 本文以实例讲解了ThinkPHP实现将SESSION存入MYSQL的方法,所采用的运行环境是Thi ...
- thinkphp session 跨域问题解决方案
session 跨域,困扰我好几天,今天终于弄明白了! 不管是thinkphp ,还是本身的php 其实都要设置session.cookie_domain 设置好,就OK了 在thinkphp 里,在 ...
- 让thinkphp 5 支持pathinfo 的 nginx ,去掉index.php
在TP5.0中查阅tp5官方文档,注意:5.0取消了URL模式的概念,并且普通模式的URL访问不再支持.phthinfo 是什么? PHP中的全局变量$_SERVER['PATH_INFO']是一个很 ...
- thinkphp session设置
<?php namespace Home\Controller; use think\Controller; /*登录*/ class LoginController extends Publi ...
随机推荐
- ie中datepicker赋值不成功
解决办法:删除placeholder即可 比如我代码如下:
- 08-02-loggin-模块
程序员看的格式 standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:% ...
- vmware下搭建openwrt
最近闲来无事,想研究下openwrt, 所以尝试着自己搭建一个来玩玩, 当然这里不是以源码编译的形式,那样太耗时. 首先官网下载已有的系统image, 路径如下 : https://archive. ...
- Django项目:CRM(客户关系管理系统)--84--74PerfectCRM实现CRM权限和权限组限制访问URL
#models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...
- css3 动画+动画库
css3 动画 实现原理 1.transition 过渡:https://www.runoob.com/cssref/css3-pr-transition.html 语法:( transition的 ...
- C++的模板
1. 模板形参表 模板形参表,里面可以是typename T/ class T这种形式的,代表里面被泛化的是一种类型: 也可以使用Type value这种形式的,代表里面被泛化的是一个某种类型的值. ...
- 拾遗:git pull 与 push 远程分支与本地分支顺序识别问题
最后放置的都是数据最终到达的仓库分支名称 对于pull来说,是拉到本地,所以本地仓库分支名称写在最后 git pull [--force] [remote repo]:[my repo] 对于push ...
- Vue 学习笔记之 —— 表单输入绑定
Vue 中文文档 https://cn.vuejs.org/ 不多说,直接上干货. v-model 指定,用来在input textarea 等表单元素上创建双向数据绑定,负责监听用户的输入事件,以及 ...
- Java对图片压缩
背景:图片上传服务器时候的大小限制取消之后,上传图片太大导致前台显示加载缓慢 需求:服务器对接收到的图片进行压缩 方法:1.上传后的文件保存在临时文件夹“/usr/upload/tmp” 2.压 ...
- 快速高效学习Java编程在线资源Top 20(转载)
想要加强你的编程能力吗?想要提升你的 Java 编程技巧和效率吗? 不用担心.本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1.MKyong:许多开发者在这里可以找到 ...