Session
系统提供了Session管理和操作的完善支持,只需通过session()
函数完成,该函数可以完成Session的设置、获取、删除和管理操作。
一般来说,在TP中不需要手动初始化session,系统会自动初始化(也就是下表)。
参数名 | 说明 |
---|---|
id | session_id值 |
name | session_name值 |
path | session_save_path值 |
prefix | session本地化空间前缀 |
expire | session.gc_maxlifetime设置值 |
domain | session.cookie_domin设置值 |
use_cookies | session.use_cookies设置值 |
use_trans_sid | session.use_trans_sid设值 |
type | session处理类型,支持驱动扩展 |
//设置系统不启用session(默认是启动的 )
'SESSION_AUTO_START'=>false,
//session赋值
session('user','Mr.H'); //$_SESSION['user']='Mr.H';
//获取session值
echo session('user'); //echo $_SESSION['user'];
//删除session
session('user',null); //unset($_SESSION['user']);
//删除所有session
session(null); //isset($_SESSION['user']);
//判断session是否存在
echo session('?user'); //isset($_SESSION['user']);
//暂停session,写入关闭
session('[pause]'); //session_write_close();
//启动session,开启写入
session('[start]'); //session_start();
//销毁session,不仅清空内容,也删除session文件。
session('[destroy]'); //session_destroy();
//重新生成session id
sesssion('[regenerate]'); //session_regenerate_id();
PS:如果在初始化session设置的时候传入prefix参数或者单独设置了SESSION_PREFIX参数的话,就可以启动本地化session管理支持。
//SESSION前缀
'SESSION_PREFIX'=>'think_',
这时候处理的$_SESSION['user]'
将变成$_SESSION['think_']['user']
,而我们在处理上没有任何区别。
Cookie
TP内置了一个cookie函数,用于支持和简化Cookie的相关操作,该函数可以完成Cookie的设置、获取、删除操作。
//cookie赋值
cookie('user','Mr.H'); //setcookie('user','Mr.H');
//cookie取值
echo cookie('user'); //echo $_COOKIE['user'];
//cookie赋值,设置过期时间
cookie('user','Mr.H',3600);
//cookie赋值,第三参数数组设置过期时间和前缀
cookie('user','H',array('expire'=>3600,'prefix'=>'think_'));
cookie('user','Mr.H','expire=>3600&&prefix=think_')
//cookie取值,如果已经设置了前缀,那取值的是就需要带前缀
echo cookie('think_user');
PS:除了过期和前缀,还有path(保存路径)和domain(域)。当然也支持配置文件的写法:COOKIE_prefix、COOKIE_EXPIRE、COOKIE_PATH、COOKIE_DOMIN。
//cookie赋值,数组
cookie('user',array('Mr.','H'));
//cookie删除user
cookie('user',null);
//cookie删除所有
cookie(null);
//cookie删除指定前缀
cookie(null,'think_');