美文网首页
session入库

session入库

作者: 码课sir | 来源:发表于2018-07-21 16:39 被阅读0次

session入库,就是重写session制机,在session的周期内,获得到session的数据并记录到数据库

Session默认是存放到服务器上的文件中,不方便管理,如果能把session存放到数据库中就可以方便的对数据库进行管理了
比如:

  • 1、可以解决不同平台多服务器间session数据共享

  • 2、可以统计在线人数

  • 3、可以踢出在线用户

  • 4、可以实现同一时只允许一个用户在线

使用步骤

第一步:在php.ini配置文件中设置session.save_handler = user 或者用ini_set设置ini_set('session.save_handler','user');

第二步:创建一个存放session的数据表

sesssion_id用于存放session_id的,字段类型为字符型,长度为32

session_value用于存放session的内容,字段类型为text

session_MaxLifeTime用于存放session的生存期

第三步:设置session的处理器,自动调用六个回调函数

session_set_save_handler ( callback open , callbackclose , callback read , callbackwrite , callback destroy , callbackgc )

ini_set("session.save_handler", "user");
 
session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
 
function open () {
    // 打开数据库链接  连接数据库
    $link = mysql_connect("127.0.0.1", "root", "root");
    mysql_select_db("test", $link);
    mysql_query("set names utf8");
}
function close() {
    // 关闭数据库链接
    mysql_close();
}
function read($session_id) {
    // 从表中中读信息
    $read = mysql_query("select * from session where session_id='{$session_id}'");
    $return = mysql_fetch_assoc($read);
    return $return["session_info"];
}
function write ($session_id, $session_info) {
    // echo $session_id. "        " . $session_info;
    // 讲session存入数据库
    $read = mysql_query("select * from session where session_id='{$session_id}'");
    $info = mysql_fetch_assoc($read);
    if (empty($info)) {
        $time = time();
        mysql_query("insert into session (session_id, session_info, session_time) values ('{$session_id}', '{$session_info}', '{$time}')");
    } else {
        $sql = "update session set session_info='{$session_info}' where session_id='{$session_id}'";
        mysql_query($sql);
    }
}
function destroy($session_id) {
    // 销毁指定session
    mysql_query("delete from session where session_id='{$session_id}'");
}
function gc() {
    // 删除所有过期的session
}

接下来我们在开启session后 设置session值 或者取session值 session就会入库了。

相关文章

  • session入库

    session入库 session需要保存的值有三个 会话编号.会话值,过期时间 创建数据表 : 小建议: 时间可...

  • session入库

    session入库,就是重写session制机,在session的周期内,获得到session的数据并记录到数据库...

  • memcache保存session数据

    使用memcache的session入库 Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种...

  • 药库管理系统测试内容

    入库管理功能的需求分析 入库 支持多种入库类别(采购入库、调拨入库、退药入库、其他入库) 打印入库单,建立药品明细...

  • 学车日记

    今天早上练习的是倒车入库。 倒车入库从方向来说,就是左侧入库和右侧入库。 感觉左侧入库比右侧入库简单。 步骤: 车...

  • 计算机毕业设计SpringBoot+LayUI仓库管理系统 仓储

    需求 实现材料仓库的管理:提供材料出入库管理等实用功能。 材料入库管理:材料检验入库、入库查询、入库类别按月统计;...

  • session 学习总结

    参考: Session Handling Session Functions (一)session session...

  • cookie,session使用

    session使用: //启动session的初始化 session_start(); //注册session变量...

  • PHP的session机制

    PHP机制使用session 开启session --- session_start()...

  • vue中sessionStorage使用

    设置session,setItem 获取session,getItem 删除session , removeItem

网友评论

      本文标题:session入库

      本文链接:https://www.haomeiwen.com/subject/vqwhmftx.html