session入库
#存储session的数据表示列结构,可作为参考
#创建数据库(可选)
CREATE DATABASE session;
#使用创建的数据库(可选)
USE session;
#创建存储session的数据表(必须)
CREATE TABLE `session` (
`session_id` varchar(255) NOT NULL,
`session_data` blob,
`session_time` int(11) NOT NULL,
UNIQUE KEY `session_id` (`session_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
<?php
//通过重写session机制实现
//session入mysql
class MySessionHandler implements SessionHandlerInterface{
//开启session
public function open($save_path,$save_name){
//连接数据库
mysql_connect('127.0.0.1','root','root');
mysql_query('use session');
mysql_query('set names utf8');
return true;
}
//关闭session
public function close(){
return true;
}
//写session
public function write($session_id,$session_data){
$sql = "insert into session values ('$session_id','$session_data','".time()."')";
// echo $sql;die();
mysql_query($sql);
return true;
}
//读session
public function read($session_id){
$sql = "select * from session where session_id = '$session_id'";
// echo $sql;
$resource = mysql_query($sql);
$row = mysql_fetch_assoc($resource);
if($row['session_data']){
return $row['session_data'];
}else{
//防止没有session报错
return '';
}
}
//销毁session
public function destroy($session_id){
$sql = "delete from session where session_id = '$session_id'";
// echo $sql;die();
mysql_query($sql);
return true;
}
//gc回收机制
public function gc($maxlifetime){
}
}
//重写session机制
$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();
// $_SESSION['name'] = 'ithm555';
// $_SESSION['age'] = '18';
// echo session_id();
// echo '<hr>';
// var_dump($_SESSION['name']);
// var_dump($_SESSION['age']);
// //销毁session
session_destroy();
// echo '<hr>';
var_dump($_SESSION['name']);
var_dump($_SESSION['age']);
session入库的更多相关文章
- Session 入库
session入库 session机制中的数据分部分存储,1部分在客户端的cookie中,2部分在服务器端的session文件中. 务器端的session文件中存储的是$_SESSION变量中的数据. ...
- php SESSION入库的实现
session入库,就是重写session制机,在session的周期内,获得到session的数据并记录到数据库 Session默认是存放到服务器上的文件中,不方便管理,如果能把session存放到 ...
- session高级(session入库)
我们知道,session是一种会话技术,用来实现跨脚本共享数据. 在之前的php会话技术中我们介绍过,session是存放在服务器端的文件里的,因此session有可能因为文件数量过多,会在查询ses ...
- php实现session入库
为什么要把session存入数据库?有什么用? 可以:统计在线人数,现实多站点session共享(通行证),控制同个账号登入人数等. 要实现session的入库,有关键的几个基本知识: session ...
- php中session 入库的实现
ini_set("session.save_handler","user");//session.gc_probability = 1 分子ini_set(&q ...
- PHP 实现Session入库/存入redis
对于大访问量的站点使用默认的Session 并不合适,我们可以将其存入数据库.或者使用Redis KEY-VALUE数据存储方案 首先新建一个session表 CREATE TABLE `sessio ...
- Session自定义存储及分布式存储
默认情况下,PHP 使用内置的文件会话保存管理器(files)来完成会话的保存.我们无需设置,PHP默认将session以文件的形式保存到服务器. 通过调用函数 session_start() 即可手 ...
- PHP的学习--cookie和session
最近读了一点<PHP核心技术与最佳实践>,看了cookie和session,有所收获,结合之前的认识参考了几篇博客,总结一下-- 1. PHP的COOKIE cookie 是一种在远程浏览 ...
- Cookie与Session详解
来源:<PHP核心技术与最佳实践> 列旭松 陈文 著 Cookie与Session详解读书笔记,从概念.操作.应用.注意事项以及区别等几方面详细阐述两者的基础知识,它们都是针对HTTP协议 ...
随机推荐
- one_gadget的一些姿势
概要 one_gadget是libc中存在的一些执行execve("/bin/sh", NULL, NULL)的片段,当可以泄露libc地址,并且可以知道libc版本的时候,可以使 ...
- Java中使用split方法根据英文问号?切割字符串时报错
因为正则表达式的原因,我们无法在java中直接使用String.split("?"),需要先转义其正确写法为: public static void splitStr() { St ...
- NOIP 模拟 $36\; \rm Cicada 拿衣服$
题解 \(by\;zj\varphi\) 发现右端点固定时,左端点的 \(min-max\) 单调递减,且对于 \(or\) 和 \(and\) 相减,最多有 \(\rm2logn\)个不同的值,且相 ...
- NOIP 模拟 $27\; \rm 牛半仙的妹子图$
题解 \(by\;zj\varphi\) 颜色数很少,考虑枚举颜色数. 建出来一棵最小生成树,可以证明在最小生成树上,一个点到另一个点的路径上的最大权值最小(易证,考虑 \(\rm kruskal\) ...
- 【硬件模块】华为NBIOT 使用记录
From: https://liudongdong1.github.io/ 1. background Low power wide area network (LPWAN) has become a ...
- 单链表(Java--尚硅谷)
基础知识 大体结构和C++的链表差不多 补充之前不知道的:链表分两类,带和不带头结点的链表 现在才知道,Java没有像C/C++那样的指针 首先创建一个LinkList类,然后把链表的各个功能添加进去 ...
- C++ template模板编程
模板是C++泛型编程的基础,一个模板就是一个创建类或者函数的蓝图或者公式.当使用一个vector这样的泛型类型,我们提供足够的信息,就可以将蓝图转换成特定的类或者函数. 假设我们编写一个函数来比较两个 ...
- 眼见为实,看看MySQL中的隐藏列!
在介绍mysql的多版本并发控制mvcc的过程中,我们提到过mysql中存在一些隐藏列,例如行标识.事务ID.回滚指针等,不知道大家是否和我一样好奇过,要怎样才能实际地看到这些隐藏列的值呢? 本文我们 ...
- BUUCTF-[网鼎杯 2020 青龙组]AreUSerialz
BUUCTF-[网鼎杯 2020 青龙组]AreUSerialz 看题 <?php include("flag.php"); highlight_file(__FILE__) ...
- vue-父子组件之传值和单项数据流问题
前言 我们知道 vue 中父子组件的核心概念是单项数据流问题,props 是单项传递的.那究竟什么是单项数据流问题,这篇文章来总结一下关于这个知识点的学习笔记. 正文 1.父组件传值给子组件 < ...