zoukankan      html  css  js  c++  java
  • session 入库

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

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

    比如:

     *   1可以解决跨域操作

     *   2可以实现单点登录

     *   3可以统计在线人数

     *   4可以踢出在线用户

     *   5可以实现同一时只允许一个用户在线

     

     使用步骤

    第一步: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 , callback $close , callback $read , callback $write , callback $destroy , callback $gc )

     1 ini_set("session.save_handler", "user");
     2 
     3 session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
     4 
     5 function open () {
     6     // 打开数据库链接  连接数据库
     7     $link = mysql_connect("127.0.0.1", "root", "root");
     8     mysql_select_db("test", $link);
     9     mysql_query("set names utf8");
    10 }
    11 function close() {
    12     // 关闭数据库链接
    13     mysql_close();
    14 }
    15 function read($session_id) {
    16     // 从表中中读信息
    17     $read = mysql_query("select * from session where session_id='{$session_id}'");
    18     $return = mysql_fetch_assoc($read);
    19     return $return["session_info"];
    20 }
    21 function write ($session_id, $session_info) {
    22     // echo $session_id. "        " . $session_info;
    23     // 讲session存入数据库
    24     $read = mysql_query("select * from session where session_id='{$session_id}'");
    25     $info = mysql_fetch_assoc($read);
    26     if (empty($info)) {
    27         $time = time();
    28         mysql_query("insert into session (session_id, session_info, session_time) values ('{$session_id}', '{$session_info}', '{$time}')");
    29     } else {
    30         $sql = "update session set session_info='{$session_info}' where session_id='{$session_id}'";
    31         mysql_query($sql);
    32     }
    33 }
    34 function destroy($session_id) {
    35     // 销毁指定session
    36     mysql_query("delete from session where session_id='{$session_id}'");
    37 }
    38 function gc() {
    39     // 删除所有过期的session
    40 }

    转载自  http://blog.csdn.net/xinxinji/article/details/50523629

    既不回头,何必不忘; 既然无缘,何须誓言; 今日种种,逝水无痕; 明夕何夕,君已陌路;
  • 相关阅读:
    SVG.js 文本绘制整理
    SVG.js 基础图形绘制整理(二)
    SVG.js 基础图形绘制整理(一)
    C# 异步编程Task整理(一)
    Svg.Js 父类的基础操作
    Svg.Js A标签,链接操作
    Svg.Js 简介(转)
    SVG 相关整理
    Kendo UI
    Kendo UI
  • 原文地址:https://www.cnblogs.com/zyjfire/p/7085837.html
Copyright © 2011-2022 走看看