原创
来源:互联网 发布:线槽做弯的算法和图片 编辑:程序博客网 时间:2024/04/29 16:44
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 )
- 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就会入库了。
0 0
- 原创!!!
- 原创
- 原创
- 原创
- [原创]
- 原创
- 原创
- 原创
- 原创
- 原创
- 原创
- 原创
- 原创
- 原创
- 原创
- 原创
- 原创
- 原创
- [Android测试] AS+Appium+Java+Win 自动化测试之六 Appium的Java测试脚本封装
- Java里面的Properties类
- view的事件体系(一)
- php虚拟主机的配置
- react 生命周期
- 原创
- 安卓原理写类似QQ侧滑效果
- Linux中强大的top命令
- 机器学习和计算机视觉相关的数学
- pandas连接数据库
- linux 下链表的简单实现
- SpringMVC流式上传文件
- Python 字符编码详解
- Android 中与 Touch 事件分发和消费机制