Session

<?php

// 封装_session_open()函数,连接数据库
function _session_open($save_path,$session_name)
{
    global $handle;
    $handle = mysqli_connect('localhost','root','111') or die('数据库连接失败');        // 连接MYSQL数据库
    mysqli_select_db($handle,'db_database11') or die('数据库中没有此库名');                // 找到数据库
    return(true);
}
// 封装_session_close()函数,关闭数据库连接
function _session_close()
{
    global $handle;
    mysqli_close($handle);
    return(true);
}
// 封装_session_read()函数,在函数中设定当前时间的UNIX时间戳,根据$key值查找Session名称和及内容
function _session_read($key)
{
    global $handle;                            // 全局变量$handle 连接数据库
    $time = time();                            // 设定当前时间
    $sql = "select session_data from tb_session where session_key = '$key' and session_time > $time";
    $result = mysqli_query($handle,$sql);
    $row = mysqli_fetch_array($result);
    if ($row)
    {
        return($row['session_data']);            // 返回Session名称及内容
    }else
    {
        return(false);
    }
}
// 封装_session_write()函数,函数中设定Session失效时间,查找到Session名称及内容,如果查询结果为空,则将页面中的Session根据session_id、session_name、失效时间插入数据库;

如果查询结果不为空,则根据$key修改数据库中Session的存储信息,返回执行结果
function _session_write($key,$data)
{
    global $handle;
    $time = 60*60;                                        // 设置失效时间
    $lapse_time = time() + $time;                        // 得到Unix时间戳
    $handle = mysqli_connect('localhost','root','111') or die('数据库连接失败');        // 连接MYSQL数据库
    mysqli_select_db($handle,'db_database11') or die('数据库中没有此库名');                // 找到数据库
    $sql = "select session_data from tb_session where session_key = '$key' and session_time > $lapse_time";
    $result = mysqli_query($handle,$sql);
    if (mysqli_num_rows($result) == 0 )                // 没有结果
    {
        $sql = "insert into tb_session values('$key','$data',$lapse_time)";        // 插入数据库sql语句
        $result = mysqli_query($handle,$sql);
    }else
    {
        $sql = "update tb_session set session_key = '$key',session_data = '$data',session_time = $lapse_time where session_key = '$key'";                                                // 修改数据库sql语句
        $result = mysqli_query($handle,$sql);
    }
    return($result);
}
// 封装_session_destroy()函数,根据$key值将数据库中的Session删除
function _session_destroy($key)
{
    global $handle;
    $sql = "delete from tb_session where session_key = '$key'";                    // 删除数据库sql语句
    $result = mysqli_query($handle,$sql);
    return($result);
}
// 封装_session_gc()函数,根据给出的失效时间删除过期Session
function _session_gc()
{
    global $handle;
    $lapse_time = time();                                    // 将参数$lapse_time赋值为当前时间戳
    $sql = "delete from tb_session where session_time < $lapse_time";    // 删除数据库sql语句
    $result = mysqli_query($handle,$sql);
    return($result);
}
// 以上为session_set_save_handler()函数的6个参数
session_set_save_handler('_session_open','_session_close','_session_read','_session_write','_session_destroy','_session_gc');

session_start();

$_SESSION['user'] = 'mr';
$_SESSION['pwd'] = 'mrsoft';
?>

posted @ 2018-05-02 14:46  cctv-2014  阅读(92)  评论(0编辑  收藏  举报