威尼斯人线上娱乐

php中把session保存到MySQL数据库中示范,函数把session保存到MySQL数据库实例

11 8月 , 2019  

本文实例陈说了php完成的SESSION类。分享给我们供我们参谋。具体剖判如下:

有关 SESSION 在 php 中的应用是必不要少的,最要紧的效用之一,SESSION
在网络使用中,称为“会话”,大家常见驾驭为存款和储蓄特定用户会话所需的音信,那样,当用户在网址页面之间跳转时,存款和储蓄的
SESSION
值不会甩掉,而是在方方面面用户会话中央机关单位接并存下来。通俗一点讲,正是当用户A上网时,会创设一个ID(a)值进行保存下去,借使您的ID(A)值没有进展注销,下一次上网时,这么些网址还有恐怕会记得你的ID(A)值,今年就足以在网络进行调用你的ID(A)值了,比方招待您ID(A)值再二回访谈。

PHP保存session默许的是运用的文本的情势来保存的,那然而在文书的空间开采相当小的windows上是能够使用的,可是借使大家运用uinx只怕是liux上的文件系统的时候,那样的文件系统的文本空间开垦是十分大的,但是session是要持续的选拔的,大批量的用户将在创立很多的session文件,那样对全数的服务器带来质量难题。

PHP保存session暗许的是运用的文件的点子来保存的,那仅仅在文书的空间开拓比很小的windows上是能够动用的,不过假诺大家应用uinx也许是liux上的文件系统的时候,那样的文件系统的文件空间开辟是相当的大的,然则session是要不停的应用的,多量的用户将要成立比非常多的session文件,那样对整个的服务器带来品质难题。

关于 SESSION 在 php 中的应用是必不要少的,是最关键的法力之一。SESSION
在网络选用中,称为“会话”,我们平常了解为存款和储蓄特定用户会话所需的音讯,那样,当用户在网址页面之间跳转时,存储的
SESSION
值不会甩掉,而是在一切用户会话中一向并存下来。通俗一点讲,便是当用户A上网时,会创制多个ID(a)值进行封存下来,假如您的ID(A)值未有开始展览注销,下一次上网时,那一个网站还有恐怕会记得您的ID(A)值,那一年就足以在英特网海展览中心开调用你的ID(A)值了,譬如应接您ID(A)值再二回访谈。

关于在 PHP 中采纳 SESSION 值是很简短的,只要在上面提前输入
session_start() 起首对话就可以,上面就足以拓展利用 SESSION
了,那只是小网址的使用措施,实际上,SESSION 自个儿还也可以有大多脾性,比方SESSION周期,调用SESSION,SESSION数据保质期,SESSION保存,SESSION注销等等,假使有了那些属性,看起来才好不轻巧多个相比标准的SESSION应用会话。

二只,假如服务器起利用集结的点子的话就不能够保持session的一致性,所以我们就绪要利用数据库的主意来保存session,这样,不管有几台服务器同不时候选取,只要把她们的session保存在一台数据库服务器上就可以保险session的完全了,具体怎么来落成请继续看下去。

一方面,假使服务器起选用集合的点子的话就无法维持session的一致性,所以大家就绪要使用数据库的措施来保存session,那样,不管有几台服务器相同的时候利用,只要把她们的session保存在一台数据库服务器上就足以确定保证session的总体了,具体怎样来贯彻请继续看下去。

有关在 PHP 中央银行使 SESSION 值是很简短的,只要在上头提前输入
session_start() 初始对话就能够,下面就可以进行应用 SESSION
了,这只是小网址的运用措施,实际上,SESSION 本身还应该有比比较多属性,例如SESSION周期,调用SESSION,SESSION数据保质期,SESSION保存,SESSION注销等等,固然有了那些属性,看起来才终于贰个相比正式的SESSION应用会话。

下边是二个全部的 Session 类,整合了 Session
最宗旨的属性值,在这之中,张开,关闭与清理是顺应php编制程序标准的,那也是三个很好的习贯。小小的说澳优下,假如网址不是大方用到
Session 类,基本上就没须求选择 SESSION 类了。

PHP保存session暗中同意的情状下是使用的文书形式来保存的,我们在PHP的配制文件PHP.ini中能够看出如此的一条龙:

PHP保存session暗中认可的状态下是使用的公文格局来保存的,我们在PHP的配制文件PHP.ini中可以见到这么的一条龙:

上面是三个整机的 Session 类,整合了 Session
最核心的属性值,在那之中,张开,关闭与清理是适合php编制程序规范的,那也是三个很好的习于旧贯。小小的说美素佳儿下,假诺网址不是大方施用
Session 类,基本上就没要求运用 SESSION 类了。

 代码如下

复制代码 代码如下:

session.save_handler=”files”

复制代码 代码如下:

 <?php
/**
* 文件叙述 Session类
* =================================================================
* 文件名称 session.class.php
* —————————————————————–
* 适用条件: PHP5.2.x / mysql 5.0.x
* —————————————————————–
* 作 者 04ie。com
* —————————————————————–
* 创造时间 二〇一〇-2-1
* =================================================================
*/
class Session
{
/**
* session暗许有效时间
* @access public
* @var ineger $_expiry
*/
public $_expiry = 3600;
/**
* 有效域名
* @access public
* @var string $_domain
*/
public $_domain = ‘.phpfamily.cn’;
//初始化
public function __construct()
{
ini_set(‘session.use_trans_id’, 0);
ini_set(‘session.gc_maxlifetime’, $this->_expiry);
ini_set(‘session.use_cookie’, 1);
ini_set(‘session.cookie_path’, ‘/’);
ini_set(‘session.cookie_domain’, $this->_domain);
session_module_name(‘user’);
session_set_save_handler(
array(&$this, ‘open’),
array(&$this, ‘close’),
array(&$this, ‘read’),
array(&$this, ‘write’),
array(&$this, ‘destroy’),
array(&$this, ‘gc’)
);
session_start();
}
/**
* 打开session
* @access public
* @param string $savePath
* @param string $sName
* @return true
*/
public function open($savePath, $sName)
{
$this->_conn = mysql_connect(‘localhost’, ‘root’, ”);
mysql_select_db(‘databases’);
mysql_query(‘SET NAMES “utf8″‘);
return true;
}
/**
* 关闭session
* @access public
* @return bool
*/
public function close()
{
return mysql_close($this->_conn);
}
/**
* 读取session
* @access public
* @param string $sid sessionID
* @return mixed
*/
public function read($sid)
{
$sql = “SELECT data FROM sessions WHERE sessionid=’%s'”;
$sql = sprintf($sql, $sid);
$res = mysql_query($sql, $this->_conn);
$row = mysql_fetch_assoc($res);
return !$row ? null : $row[‘data’];
}
/**
* 写入session
* @access public
* @param string $sid sessionID
* @param string $data serialize类别化后的session内容
* @return
*/
public function write($sid, $data)
{
$expiry = time() + $this->_expiry;
$sql = “REPLACE INTO sessions (sessionid,expiratio
n,data) VALUES (‘%s’, ‘%d’, ‘%s’)”;
$sql = sprintf($sql, $sid, $expiry, $data);
mysql_query($sql, $this->_conn);
return true;
}
/**
* 销毁session
* @access public
* @param string $sid sessionID
* @return
*/
public function destroy($sid)
{
$sql = “DELETE FROM sessions WHERE sessionid=’%s'”;
$sql = sprintf($sql, $sid);
mysql_query($sql, $this->_conn);
return true;
}
/**
* 清理超时session
* @access public
* @param integer $time
* @return
*/
public function gc($time = 0)
{
$sql = “DELETE FROM sessions WHERE expiration < ‘%d'”;
$sql = sprintf($sql, time());
mysql_query($sql, $this->_conn);
mysql_query(‘OPTIMIZE TABLE sessions’);
return true;
}
 

session.save_handler=”files”

诸如此比的意思正是应用文件来保存session
的,要使用数据库来保存的话,大家须要修改成用户形式,改成

<?php
/**
* 文件陈说 Session类
* =================================================================
* 文件名称 session.class.php
* —————————————————————–
* 适用条件: PHP5.2.x / mysql 5.0.x
* —————————————————————–
* 作 者 04ie。com
*php中把session保存到MySQL数据库中示范,函数把session保存到MySQL数据库实例。 —————————————————————–
* 创设时间 二〇〇八-2-1
* =================================================================
*/
class Session
{
/**
* session默许有效时间
* @access public
* @var ineger $_expiry
*/
public $_expiry = 3600;
/**
* 有效域名
* @access public
* @var string $_domain
*/
public $_domain = ‘.jb51.net’;
//初始化
public function __construct()
{
ini_set(‘session.use_trans_id’, 0);
ini_set(‘session.gc_maxlifetime’, $this->_expiry);
ini_set(‘session.use_cookie’, 1);
ini_set(‘session.cookie_path’, ‘/’);
ini_set(‘session.cookie_domain’, $this->_domain);
session_module_name(‘user’);
session_set_save_handler(
array(&$this, ‘open’),
array(&$this, ‘close’),
array(&$this, ‘read’),
array(&$this, ‘write’),
array(&$this, ‘destroy’),
array(&$this, ‘gc’)
);
session_start();
}
/**
* 打开session
* @access public
* @param string $savePath
* @param string $sName
* @return true
*/
public function open($savePath, $sName)
{
$this->_conn = mysql_connect(‘localhost’, ‘root’, ”);
mysql_select_db(‘databases’);
mysql_query(‘SET NAMES “utf8″‘);
return true;
}
/**
* 关闭session
* @access public
* @return bool
*/
public function close()
{
return mysql_close($this->_conn);
}
/**
* 读取session
* @access public
* @param string $sid sessionID
* @return mixed
*/
public function read($sid)
{
$sql = “SELECT data FROM sessions WHERE sessionid=’%s'”;
$sql = sprintf($sql, $sid);
$res = mysql_query($sql, $this->_conn);
$row = mysql_fetch_assoc($res);
return !$row ? null : $row[‘data’];
}
/**
* 写入session
* @access public
* @param string $sid sessionID
* @param string $data serialize连串化后的session内容
* @return
*/
public function write($sid, $data)
{
$expiry = time() + $this->_expiry;
$sql = “REPLACE INTO sessions (sessionid,expiratio
n,data) VALUES (‘%s’, ‘%d’, ‘%s’)”;
$sql = sprintf($sql, $sid, $expiry, $data);
mysql_query($sql, $this->_conn);
return true;
}
/**
* 销毁session
* @access public
* @param string $sid sessionID
* @return
*/
public function destroy($sid)
{
$sql = “DELETE FROM sessions WHERE sessionid=’%s'”;
$sql = sprintf($sql, $sid);
mysql_query($sql, $this->_conn);
return true;
}
/**
* 清理超时session
* @access public
* @param integer $time
* @return
*/
public function gc($time = 0)
{
$sql = “DELETE FROM sessions WHERE expiration < ‘%d'”;
$sql = sprintf($sql, time());
mysql_query($sql, $this->_conn);
mysql_query(‘OPTIMIZE TABLE sessions’);
return true;
}

上边咱们再看七个php
session购物车类

与上述同类的意味便是运用文件来保存session
的,要选取数据库来保存的话,我们供给修改成用户情势,改成

session.save_handler=”use”

期望本文所述对大家的PHP程序设计有所支持。

 代码如下

复制代码 代码如下:

就可以了,不过,那可是是验证作者门未有采纳文件的点子存款和储蓄session,我们还要选拔数据库和创建数据库的表。

您可能感兴趣的作品:

  • php session_start()关于Cannot send session cache limiter – headers
    already sent错误消除措施
  • 教你怎么样使用php session
  • php中贯彻规范设置session过期时间的点子
  • ThinkPHP中Session用法详解
  • php中采纳session防止用户私自登入后台的艺术
  • php清除和销毁session的情势剖判
  • PHP
    SESSION的加多、删除、修改、查看操作
  • PHP中SESSION的吊销与解除

<?php
class Cart{
 public function Cart() {
  if(!isset($_SESSION[‘cart’])){
   $_SESSION[‘cart’] = array();
  }
 }

session.save_handler=”use”

确立数据库和数据库的表结构,大家得以运用PHP能够运用的其他的数据库,因为PHP和mysql的咬合最棒,笔者就选取mysql来做示范,当然依据你的须求可以改称其他数据库。

 /*
 增添商品
 param int $id 商品主键
    string $name 商品名称
    float $price 商品价位
    int $num 购物数量
 */
 public  function addItem($id,$name,$price,$num,$img) {
  //假诺该商品已存在则直接加其数量
  if (isset($_SESSION[‘cart’][$id])) {
   $this->incNum($id,$num);
   return;
  }
  $item = array();
  $item[‘id’] = $id;
  $item[‘name’] = $name;
  $item[‘price’] = $price;
  $item[‘num’] = $num;
  $item[‘img’] = $img;
  $_SESSION[‘cart’][$id] = $item;
 }

就足以了,不过,那只是是表达笔者门未有动用文件的法门存款和储蓄session,我们还要采用数据库和确立数据库的表。

创制数据库

 /*
 修改购物车中的商品数量
 int $id 商品主键
 int $num 某商品修改后的数额,即直接把某商品
 的多寡改为$num
 */
 public function modNum($id,$num=1) {
  if (!isset($_SESSION[‘cart’][$id])) {
   return false;
  }
  $_SESSION[‘cart’][$id][‘num’] = $num;
 }

树立数据库和数据库的表结构,我们能够动用PHP能够选取的别样的数据库,因为PHP和mysql的结缘最佳,小编就动用mysql来做示范,当然依照你的内需能够改称别的数据库。

create database ‘session’;

 /*
 商品数量+1
 */
 public function incNum($id,$num=1) {
  if (isset($_SESSION[‘cart’][$id])) {
   $_SESSION[‘cart’][$id][‘num’] += $num;
  }
 }

创制数据库

成立表结构

 /*
 商品数量-1
 */
 public function decNum($id,$num=1) {
  if (isset($_SESSION[‘cart’][$id])) {
   $_SESSION[‘cart’][$id][‘num’] -= $num;
  }

复制代码 代码如下:

create table ‘session'( id char(32) not null , ‘user ‘char(30), data
char(3000) ,primary key (‘id’) );

  //假设收缩后,数量为0,则把这些商品删掉
  if ($_SESSION[‘cart’][$id][‘num’] <1) {
   $this->delItem($id);
  }
 }

create database ‘session’;

PHP保存session编写PHP文件

 /*
 删除商品
 */
 public function delItem($id) {
  unset($_SESSION[‘cart’][$id]);
 }
 
 /*
 获取单个商品
 */
 public function getItem($id) {
  return $_SESSION[‘cart’][$id];
 }

开创表结构

 代码如下

 /*
 查询购物车中货品的等级次序
 */
 public function getCnt() {
  return count($_SESSION[‘cart’]);
 }
 
 /*
 查询购物车中物品的个数
 */
 public function getNum(){
  if ($this->getCnt() == 0) {
   //种数为0,个数也为0
   return 0;
  }

复制代码 代码如下:

<?php
$con = mysql_connect(“127.0.0.1”, “user” , “pass”);
mysql_select_db(“session”);
function open($save_path, $session_name) {
 return(true);
}
function close() {
 return(true);
}
function read($id) {
 if ($result = mysql_query(“select * from session where id=’$id'”))
{
  if ($row = mysql_felth_row($result)) {
   return $row[“data”];
  }
 } else {
  return “”;
 }
}
function write($id, $sess_data) {
 if ($result = mysql_query(“update session set data=’$sess_data’ where
id=’$id'”)) {
  return true;
 } else {
  return false;
 }
}
function destroy($id) {
 if ($result = mysql_query(“delete * from session where id=’$id'”))
{
  return true;
 } else {
  return false;
 }
}
function gc($maxlifetime) {
 return true;
}
session_set_save_handler(“open”, “close”, “read”, “write”, “destroy”,
“gc”);
session_start();
// proceed to use sessions normally

  $sum = 0;
  $data = $_SESSION[‘cart’];
  foreach ($data as $item) {
   $sum += $item[‘num’];
  }
  return $sum;
 }

create table ‘session'( id char(32) not null , ‘user ‘char(30), data
char(3000) ,primary key (‘id’) );

保存成为session_user_start.php。

 /*
 购物车中货品的总金额
 */
 public function getPrice() {
  //数量为0,价钱为0
  if ($this->getCnt() == 0) {
   return 0;
  }
  $price = 0.00;
  foreach ($this->items as $item) {
   $price += $item[‘num’] * $item[‘price’];
  }
  return sprintf(“%01.2f”, $price);
 }

PHP保存session编写PHP文件

当今大家的PHP保存session的办事就已经到位了,只要你在需求在运用session的时候,把session_user_start.php包涵进来.注意,这么些文件必要求在文书的首先行富含,然后就如使用文件的session一样的格局应用就能够了。

 /*
 清空购物车
 */
 public function clear() {
  $_SESSION[‘cart’] = array();
 }
}

复制代码 代码如下:

上述只是是个简单教程,在其实的利用中,能够对它包裹得更典型些,参谋代码如下:

<?php
$con = mysql_connect(“127.0.0.1”, “user” , “pass”);
mysql_select_db(“session”);
function open($save_path, $session_name) {
 return(true);
}
function close() {
 return(true);
}
function read($id) {
 if ($result = mysql_query(“select * from session where id=’$id'”))
{
  if ($row = mysql_felth_row($result)) {
   return $row[“data”];
  }
 } else {
  return “”;
 }
}
function write($id, $sess_data) {
 if ($result = mysql_query(“update session set data=’$sess_data’ where
id=’$id'”)) {
  return true;
 } else {
  return false;
 }
}
function destroy($id) {
 if ($result = mysql_query(“delete * from session where id=’$id'”))
{
  return true;
 } else {
  return false;
 }
}
function gc($maxlifetime) {
 return true;
}
session_set_save_handler(“open”, “close”, “read”, “write”, “destroy”,
“gc”);
session_start();
// proceed to use sessions normally

SessionMysql.class.php

封存成为session_user_start.php。

 代码如下

现行反革命大家的PHP保存session的行事就早就成功了,只要您在急需在接纳session的时候,把session_user_start.php包蕴进来.注意,那一个文件一定要在文件的第一行李包裹涵,然后就像使用文件的session同样的方法运用就足以了。

<?php
/**
 * SessionMysql 数据库存款和储蓄类
 */

以上只是是个轻巧教程,在骨子里的使用中,能够对它包裹得更专门的职业些,参谋代码如下:

defined(‘IN_QIAN’) or exit(‘Access
Denied’);

SessionMysql.class.php

class SessionMysql {

复制代码 代码如下:

 public $lifetime = 1800; // 有效期,单位:秒(s),默认30分钟
 public $db;
 public $table;

<?php
/**
 * SessionMysql 数据仓库储存款和储蓄类
 */

 /**
  * 构造函数
  */
 public function __construct() {
  $this->db = Base::loadModel(‘SessionModel’);
  $this->lifetime = Base::loadConfig(‘system’,
‘session_lifetime’);
  session_set_save_handler(
   array(&$this, ‘open’),  // 在运行session_start()时执行
   array(&$this, ‘close’),  // 在本子推行到位 或
调用session_write_close() 或
session_destroy()时被施行,即在颇具session操作完后被奉行
   array(&$this, ‘read’),  //
在运行session_start()时执行,因为在session_start时,会去read当前session数据
   array(&$this, ‘write’),  //
此方法在剧本结束和使用session_write_close()强制提交SESSION数据时执行
   array(&$this, ‘destroy’), // 在运行session_destroy()时执行
   array(&$this, ‘gc’)   // 实行概率由session.gc_probability 和
session.gc_divisor的值决定,机缘是在open,read之后,session_start会相继实践open,read和gc
  );
  session_start(); //
那也是必须的,展开session,必须在session_set_save_handler前边实践
 }
 /**
  * session_set_save_handler open方法
  *
  * @param $savePath
  * @param $sessionName
  * @return true
  */
 public function open($savePath, $sessionName) {
  return true;
 }
 /**
  * session_set_save_handler close方法
  *
  * @return bool
  */
 public function close() {
  return $this->gc($this->lifetime);
 }
 /**
  * 读取session_id
  *
  * session_set_save_handler read方法
  * @return string 读取session_id
  */
 public function read($sessionId) {
  $condition = array(
   ‘where’ => array(
    ‘session_id’ => $sessionId
   ),
   ‘fields’ => ‘data’
  );
  $row = $this->db->fetchFirst($condition);
  return $row ? $row[‘data’] : ”;
 }
 /**
  * 写入session_id 的值
  *
  * @param $sessionId 会话ID
  * @param $data 值
  * @return mixed query 实施结果
  */
 public function write($sessionId, $data) {
  $userId = isset($_SESSION[‘userId’]) ? $_SESSION[‘userId’] :
0;
  $roleId = isset($_SESSION[‘roleId’]) ? $_SESSION[‘roleId’] :
0;
  $grouId = isset($_SESSION[‘grouId’]) ? $_SESSION[‘grouId’] :
0;
  $m = defined(‘ROUTE_M’) ? ROUTE_M : ”;
  $c = defined(‘ROUTE_C’) ? ROUTE_C : ”;
  $a = defined(‘ROUTE_A’) ? ROUTE_A : ”;
  if (strlen($data) > 255) {
   $data = ”;
  }
  $ip = get_ip();
  $sessionData = array(
   ‘session_id’ => $sessionId,
   ‘user_id’  => $userId,
   ‘ip’   => $ip,
   ‘last_visit’ => SYS_TIME,
   ‘role_id’  => $roleId,
   ‘group_id’  => $grouId,
   ‘m’    => $m,
   ‘c’    => $c,
   ‘a’    => $a,
   ‘data’   => $data,
  );
  return $this->db->insert($sessionData, 1, 1);
 }
 /**
  * 删除钦赐的session_id
  *
  * @param string $sessionId 会话ID
  * @return bool
  */
 public function destroy($sessionId) {
  return $this->db->delete(array(‘session_id’ =>
$sessionId));
 }
 /**
  * 删除过期的 session
  *
  * @param $lifetime session有效期(单位:秒)
  * @return bool
 */
 public function gc($lifetime) {
  $expireTime = SYS_TIME – $lifetime;
  return $this->db->delete(“`last_visit`<$expireTime”);
 }
}

defined(‘IN_QIAN’) or exit(‘Access Denied’);

在系统文件的某部地点,实例化那么些类就能够!

class SessionMysql {

new SessionMysql();

 public $lifetime = 1800; // 有效期,单位:秒(s),默认30分钟
 public $db;
 public $table;

 /**
  * 构造函数
  */
 public function __construct() {
  $this->db = Base::loadModel(‘SessionModel’);
  $this->lifetime = Base::loadConfig(‘system’,
‘session_lifetime’);
  session_set_save_handler(
   array(&$this, ‘open’),  // 在运行session_start()时执行
   array(&$this, ‘close’),  // 在剧本实行到位 或
调用session_write_close() 或
session_destroy()时被实践,即在有着session操作完后被实行
   array(&$this, ‘read’),  //
在运行session_start()时执行,因为在session_start时,会去read当前session数据
   array(&$this, ‘write’),  //
此措施在剧本截至和选择session_write_close()强制提交SESSION数据时执行
   array(&$this, ‘destroy’), // 在运行session_destroy()时执行
   array(&$this, ‘gc’)   // 试行可能率由session.gc_probability 和
session.gc_divisor的值决定,机遇是在open,read之后,session_start会相继实行open,read和gc
  );
  session_start(); //
那也是必须的,张开session,必须在session_set_save_handler前面试行
 }
 /**
  * session_set_save_handler open方法
  *
  * @param $savePath
  * @param $sessionName
  * @return true
  */
 public function open($savePath, $sessionName) {
  return true;
 }
 /**
  * session_set_save_handler close方法
  *
  * @return bool
  */
 public function close() {
  return $this->gc($this->lifetime);
 }
 /**
  * 读取session_id
  *
  * session_set_save_handler read方法
  * @return string 读取session_id
  */
 public function read($sessionId) {
  $condition = array(
   ‘where’ => array(
    ‘session_id’ => $sessionId
   ),
   ‘fields’ => ‘data’
威尼斯人线上娱乐 ,  );
  $row = $this->db->fetchFirst($condition);
  return $row ? $row[‘data’] : ”;
 }
 /**
  * 写入session_id 的值
  *
  * @param $sessionId 会话ID
  * @param $data 值
  * @return mixed query 实行结果
  */
 public function write($sessionId, $data) {
  $userId = isset($_SESSION[‘userId’]) ? $_SESSION[‘userId’] :
0;
  $roleId = isset($_SESSION[‘roleId’]) ? $_SESSION[‘roleId’] :
0;
  $grouId = isset($_SESSION[‘grouId’]) ? $_SESSION[‘grouId’] :
0;
  $m = defined(‘ROUTE_M’) ? ROUTE_M : ”;
  $c = defined(‘ROUTE_C’) ? ROUTE_C : ”;
  $a = defined(‘ROUTE_A’) ? ROUTE_A : ”;
  if (strlen($data) > 255) {
   $data = ”;
  }
  $ip = get_ip();
  $sessionData = array(
   ‘session_id’ => $sessionId,
   ‘user_id’  => $userId,
   ‘ip’   => $ip,
   ‘last_visit’ => SYS_TIME,
   ‘role_id’  => $roleId,
   ‘group_id’  => $grouId,
   ‘m’    => $m,
   ‘c’    => $c,
   ‘a’    => $a,
   ‘data’   => $data,
  );
  return $this->db->insert($sessionData, 1, 1);
 }
 /**
  * 删除内定的session_id
  *
  * @param string $sessionId 会话ID
  * @return bool
  */
 public function destroy($sessionId) {
  return $this->db->delete(array(‘session_id’ =>
$sessionId));
 }
 /**
  * 删除过期的 session
  *
  * @param $lifetime session有效期(单位:秒)
  * @return bool
 */
 public function gc($lifetime) {
  $expireTime = SYS_TIME – $lifetime;
  return $this->db->delete(“`last_visit`<$expireTime”);
 }
}

在系统文件的某部地点,实例化那几个类就可以!

复制代码 代码如下:

new SessionMysql();

您只怕感兴趣的篇章:

  • PHP达成应用MySQL保存session的格局
  • ThinkPHP实现将SESSION存入MYSQL的方法
  • 解析php session_set_save_handler
    函数的用法(mysql)
  • SQLServer中运用扩张事件获得Session级其余守候新闻及SQLServer
    2015中Session品级等待新闻的抓牢


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图