session入库

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_info用于存放session的内容,字段类型为text

session_MaxLifeTime用于存放session的生存期


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

session_set_save_handler( callback $open , callback $close , callback $read , callback $write , callback $destroy , callback $gc );

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");

这两种选一种即可;

session_set_save_handler的用法可以直接百度

<?php

header("content-type:text/html;charset=utf8");

//将session存储方式设置为存入数据库方式
ini_set("session.save_handler","user");//更改php.ini的配置
session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
//打开连接
function open()
{
    
}

//关闭连接
function close()
{
    //连接pdo
    // $pdo = new PDO("mysql:host=localhost;dbname=nine","root","root");
    // $pdo->query("set names utf8");
    // $pdo = null;
}

//从表中读信息
function read($session_id)
{
    $pdo = new PDO("mysql:host=localhost;dbname=nine","root","root");
    $pdo->query("set names utf8");
    $res = $pdo->query("select * from session where session_id = '$session_id'")->fetch(PDO::FETCH_ASSOC);
    return $res['session_info'];
}

//写
function write($session_id,$session_info)
{
    //echo $session_id;
    // echo $session_info;die;
    $pdo = new PDO("mysql:host=localhost;dbname=nine","root","root");
    $pdo->query("set names utf8");
    $res = $pdo->query("select * from session where session_id = '$session_id'")->fetch(PDO::FETCH_ASSOC);
    if(empty($res))
    {
        // echo "1";die;
        $time = time();
        // var_dump($time);die;
        $pdo->exec(" insert into session (session_id,session_info,session_maxlifetime) values ('{$session_id}','{$session_info}','{$time}')");
    }
    else
    {
        $pdo->exec(" update session set session_info='$session_info' where session_id='$session_id'");
    }
}

//销毁
function destroy($session_id)
{
    $pdo = new PDO("mysql:host=localhost;dbname=nine","root","root");
    $pdo->query("set names utf8");
    $pdo->exec("delete from session where session_id = '$session_id'");
}

//删除所有过期的session
function gc()
{

}

最后直接在后边存取session就行了,比较简单


基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件。 功能模块 用户模块 登录/注册功能,支持学生和教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件 Axios 请求 ByteMD 编辑器 ECharts 图 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值