session入库
session机制中的数据分部分存储,1部分在客户端的cookie中,2部分在服务器端的session文件中。
务器端的session文件中存储的是$_SESSION变量中的数据。
session入库就是将$_SESSION中的数据存在数据库中
对session的操作
session_start();
$_SESSION['名']
session_destroy();
修改session机制
session_set_save_handler ( string open, string close, string read, string write, string destroy, string gc )
session_set_save_handler ( callable open, callable close, callable read, callable write, callable destroy, callable gc )
session_set_save_handler ( callback open, callback close, callback read, callback write, callback destroy, callback gc )
open: 当session开启时,被session机制自动调用一个函数(方法)
close: 当session关闭时,被session机制自动调用一个函数(方法)
read: 当对$_SESSION进行读取时,被session机制自动调用一个函数(方法)
write: 当对$_SESSION进行写入时,被session机制自动调用一个函数(方法)
说明:
此处的write并不是向内存变量($_SESSION)中写数据,而是将内存变量($_SESSION)中的数据写到硬盘上对应的session文件中
destory:当执行session_destroy()时,被session机制自动调用一个函数(方法)
gc:当执行php的垃圾回收机制被触发时,被session机制自动调用一个函数(方法)
session数据表
create table session(
sessid char(32) primary key comment '主键字段不能重复,存储sessionid',
content text comment '存储session里的数据',
expire int unsigned
);
session_id();
用于获取由session机制产生的sessionid数据
session_name();
用于获取由session机制发给客户端的cookie文件的前缀
session_destroy()与GC,
session_destroy()是人为的删除当前进程对应的session文件,只能删除一个
GC是被触发删除到GC被触的时间点时,已过期的所有的session文件
session入库后,显示$_SESSION问题
封装成类后的session注册机制的更改
将注册session机制放到类内部