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_data"];  
    20. }  
    21. function write ($session_id$session_data) {  
    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_data, session_time) values ('{$session_id}', '{$session_data}', '{$time}')");  
    29.     } else {  
    30.         $sql = "update session set session_data='{$session_data}' 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. }  

    接下来我们在开启session后 设置session值 或者取session值 session就会入库了。
  • 相关阅读:
    项目依赖库列表文件requirements.txt生成和使用
    pymysql执行sql语句无效问题
    Prometheus
    关于在安装wampserver出现“由于找不到msvcr110.dll”的问题的解决办法
    安装centos8和Window10出现的一些问题和解决方法
    LeetCode833题:字符串中的查找与替换
    Pycharm中github的使用(只有链接供自己学习使用)
    机器学习《西瓜书》的学习笔记——机器学习使用的领域
    机器学习中数理统计与参数估计的相关基础概念
    怎样在Anaconda中的某一个环境中安装Python的相关包(pypyodbc)
  • 原文地址:https://www.cnblogs.com/wepe/p/7424557.html
Copyright © 2011-2022 走看看