欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP session 会话

程序员文章站 2024-03-20 13:55:28
...

php会话-session管理-参看

  • session_start() 启动新会话或重用现任会话
bool session_start([ array $options = [] ])
//> 在调用session_start()函数之前如果想改变php.ini中session.name会话名称介意使用session_name()函数
//> 会话开始或手动调用session_start()时,会调用管理的open和read回调函数
//> php.ini中的session.use_trans_sid
//> session.use_trans_sid = 0 # 不允许在url凭借session.name名称传递会话名称
//> session.use_trans_sid = 1 # 当浏览器禁止cookie时,允许凭借session.name会话名称在url后
//> 当use_trans_sid设置为1时,会自动在url后面拼接session.name名称
//> 当session_start()函数调用时,会自动调用open()和read()函数
//> 如果想使用自定义的会话管理器,需要先设置session_set_save_handler()函数
  • session_set_save_handler() 函数注册自定义的会话管理器
//> 在php5.4后面使用和php5.4前使用的参看手册
bool session_set_save_handler( SessionHandlerInterface $sessionhandler [, bool $register_shutdown = true] )
//> SessionHandlerInterface 会话管理接口
//> $register_shutdown 将函数 session_write_close()注册为 register_shutdown_function()函数
//> register_shutdown_function() 函数允许注册一个函数在脚本结束或脚本跑死时执行
//> session_write_close() 函数保存session数据释放session程序锁
//> session_write_close() 名称别名 session_commit()
  • SessionHandlerInterface 会话管理接口
//> 要求继承者需要实现的几个方法
//> open() 是session_start() 函数后第一个被调用的函数 成功返回true,失败返回false
open(string $savePath, string $sessionName)
//> read() 函数在 open() 函数后被调用
//> 如果会话中有数据,read 回调函数必须返回将会话数据编码(序列化)后的字符串。 如果会话中没有数据,read 回调函数返回空字符串
read(string $sessionId) 
//> 待补充 ....
//> gc 垃圾处理调用机制 php.ini 配置参数(php自动调用过程)
//> gc_probability / gc_divisor 表示触发gc垃圾回收概率
session.gc_probability = 1
session.gc_divisor = 1000
//> gc_maxlifetime 垃圾回收处理最大回收时间秒
session.gc_maxlifetime = 1440