首页 > 开发 > PHP > 正文

解析php session_set_save_handler 函数的用法(mysql)

2024-05-04 22:25:02
字体:
来源:转载
供稿:网友
代码如下:
<?php
/*============================文件说明========================================
@filename:     session.class.php
@description:  数据库保存在线用户session,实现在线用户功能!
@notice:       session过期时间一个小时,因为我们的站点是使用cookie(有效时间是1小时)登录。                
        因此我们只记录用户登录的时间,而不是刷新一次更新一次                
        删除数据库中session记录的动作发生在用户超时后执行这个文件或正常退出(session_destory) 
@database:     database:sessions  field:sessionid(char32),uid(int10),last_visit(int10)
=============================================================================
*/
 class session {
     private $db;
     private $lasttime=3600;//超时时间:一个小时
      function session(&$db) {
         $this->db = &$db;
         session_module_name('user'); //session文件保存方式,这个是必须的!除非在Php.ini文件中设置了
         session_set_save_handler(
             array(&$this, 'open'), //在运行session_start()时执行
              array(&$this, 'close'), //在脚本执行完成或调用session_write_close() 或 session_destroy()时被执行,即在所有session操作完后被执行
             array(&$this, 'read'), //在运行session_start()时执行,因为在session_start时,会去read当前session数据
             array(&$this, 'write'), //此方法在脚本结束和使用session_write_close()强制提交SESSION数据时执行
              array(&$this, 'destroy'), //在运行session_destroy()时执行
              array(&$this, 'gc') //执行概率由session.gc_probability 和 session.gc_divisor的值决定,时机是在open,read之后,session_start会相继执行open,read和gc
         );
         session_start(); //这也是必须的,打开session,必须在session_set_save_handler后面执行
     }
        function unserializes($data_value) {
         $vars = preg_split(
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表