教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php session操作类(附实例)

php session操作类(附实例)

发布时间:2016-11-21   编辑:jiaochengji.com
分享一个php session操作类,及具体的调用示例,有需要的朋友参考下。

一个不错的php session类,将session保存在数据库中,供大家参考。

1,php session类

<?php 
/*
* session类
* by www.jbxue.com
 */  
class Session {
    //构造函数
    public function __construct(){ 
        session_set_save_handler(array(&$this, 'open'),array(&$this, 'close'),array(&$this, 'read'),array(&$this, 'write'),
array(&$this, 'destroy'),array(&$this, 'clean')); 
        session_start(); 
    } 

    //打开数据库连接
    public function open() { 
        $this->mysql = mysql_connect('localhost', 'root', 'mysql'); 
        $bSeldb = mysql_select_db('sudhir', $this->mysql); 
        if (!$bSeldb) { 
            die ('Can\'t use Database : ' . mysql_error()); 
        } 

    }
    
    //写session
    public function write($id, $data) { 
        $access = time(); 
        $id = mysql_real_escape_string($id); 
        $access = mysql_real_escape_string($access); 
        $data = mysql_real_escape_string($data); 
        $sql = "REPLACE INTO sessions VALUES  ('$id', '$access', '$data')"; 
        return mysql_query($sql, $this->mysql) or die(mysql_error()); 
    } 

    //读session
    public function read($id) { 
        $id = mysql_real_escape_string($id); 
        $sql = "SELECT data FROM   sessions WHERE  id = '$id'"; 
        if ($result = mysql_query($sql, $this->mysql)) { 
            if (mysql_num_rows($result)) { 
                $record = mysql_fetch_assoc($result); 
                return $record['data']; 
            } 
        } 
        return ''; 
    }

    //销毁session
    public function destroy($id) { 
        $id = mysql_real_escape_string($id); 
        $sql = "DELETE FROM   sessions WHERE  id = '$id'"; 
        return mysql_query($sql, $this->mysql); 
    }

    //清除session
    public function clean($max) { 
        $old = time() - $max; 
        $old = mysql_real_escape_string($old); 
        $sql = "DELETE FROM   sessions WHERE  access < '$old'"; 
        return mysql_query($sql, $this->mysql); 
    } 

    //关闭数据库连接
    public function close() { 
        mysql_close($this->mysql); 
    } 
} 
?>

2,调用示例:

<?php
//调用session类
require_once "session.php";

$oSession = new Session(); 
print_r($_SESSION); // First 
$_SESSION['hi'] = "脚本学堂"; // Comment this Once sessoin is set 
$_SESSION['test'] = "www.jbxue.com"; // Comment this Once sessoin is set 
?>

您可能感兴趣的文章:
php session操作类(附实例)
Go基础学习记录之如何在Golang中使用Session
laravel框架session使用教程
php对象的序列化与反序列化 PHP对象存储与传输
解决php session跨页面传递 session值丢失的问题(图文)
php 购物车的实现代码一例(session方式)
PHP的Session过期问题深入分析
PHP session并发及session读写锁分析
php session 使用与安全
php操作多个用户、多个线程的session(登陆状态session值自动更新)

关键词: php session   
[关闭]
~ ~