最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php把session寫入數(shù)據(jù)庫示例

 更新時間:2014年02月26日 10:35:49   作者:  
這篇文章主要介紹了php把session寫入數(shù)據(jù)庫示例,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

<?php
class session_handler {

 protected $maxlifetime = null;
 protected $dbHandle = null;
 public $config = null;

 public static function init($args) {
  return new self($args);
 }

 public function __construct($args) {

  $this->config = $args;
  $this->maxlifetime = get_cfg_var("session.gc_maxlifetime");
  session_set_save_handler(
  array($this, "open"),
  array($this, "close"),
  array($this, "read"),
  array($this, "write"),
  array($this, "destroy"),
  array($this, "gc"));

 }

 public function open() {
  $this->link = mysqli_connect(
  $this->config['host'],
  $this->config['user'],
  $this->config['password'],
  $this->config['database']);
  mysqli_set_charset($this->link, "utf8");
  $sql = 'CREATE TABLE IF NOT EXISTS `%s` (
  `session_id` varchar(255) NOT NULL,
  `session_data` text,
  `session_expires` char(10) NOT NULL,
  PRIMARY KEY (`session_id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;';
  $sql = sprintf($sql, $this->config['table']);
  mysqli_query($this->link, $sql);
  return true;
 }

 public function close() {
  return true;
 }

 
 public function read($session_id) {
  if(empty($session_id)) return null;

  $sql = 'SELECT `session_data` AS `data` FROM `%s` WHERE `session_id` = "%s" AND `session_expires` > "%u"';
  $sql = sprintf($sql,
  mysqli_real_escape_string($this->link, $this->config['table']),
  mysqli_real_escape_string($this->link, $session_id),
  time());

  $result = mysqli_query($this->link, $sql);
  $row = mysqli_fetch_assoc($result);
  return $row['data'];

 }

 public function write($session_id, $session_data) {
  if(empty($session_id)) return null;

  $newExpires = time() + $this->maxlifetime;
  $sql = 'REPLACE INTO `%s` SET `session_id` = "%s", `session_data` = "%s", `session_expires` = "%u"';
  $sql = sprintf($sql,
  mysqli_real_escape_string($this->link, $this->config['table']),
  mysqli_real_escape_string($this->link, $session_id),
  mysqli_real_escape_string($this->link, $session_data),
  $newExpires);

  $result = mysqli_query($this->link, $sql);
  return mysqli_affected_rows($this->link);

    }

 public function destroy($session_id) {
  $sql = 'DELETE FROM `%s` WHERE `session_id` = "%s"';
  $sql = sprintf($sql,
  mysqli_real_escape_string($this->link, $this->config['table']),
  mysqli_real_escape_string($this->link, $session_id));

  $result = mysqli_query($this->link, $sql);
  return mysqli_affected_rows($this->link);
    }

 public function gc() {
  $sql = 'DELETE FROM `%s` WHERE `session_expires` < "%u"';
  $sql = sprintf($sql,
  mysqli_real_escape_string($this->link, $this->config['table']),
  time());

  $result = mysqli_query($this->link, $sql);
  return mysqli_affected_rows($this->link);
    }

}

class session {

 public static $collection = null;

 public static function open($clean = false, $token = false) {
  if($clean) ob_end_clean();
  if($token) session_id($token);
  session_start();
  self::$collection = $_SESSION;
 }

 public static function id() {
  $num_args = func_num_args();
  if($num_args) {
   $args = func_get_arg(0);
   return session_id($args);
  }else{
   return session_id();
  }
 }

 public static function get($name) {
  return isset($_SESSION[$name]) ? $_SESSION[$name] : null;
 }

 public static function set($name, $value) {
  $_SESSION[$name] = $value;
  return true;
 }

 public static function delete($name) {
  if(!isset($_SESSION[$name])) return null;
  unset($_SESSION[$name]);
  return true;
 }

 public static function destroy() {
  session_destroy();
 }

}

$config = array(
"host"=> "127.0.0.1",
"user"=> "root",
"password"=> "123456",
"database"=> "test",
"charset"=> "utf8",
"table"=> "user_session");

session_handler::init($config);
session::open();
session::set("profile", array("id"=> 1, "user"=> "haowei", "vip-level"=> 6));

相關(guān)文章

  • Codeigniter里的無刷新上傳的實現(xiàn)代碼

    Codeigniter里的無刷新上傳的實現(xiàn)代碼

    這篇文章主要介紹了Codeigniter里的無刷新上傳的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • PHP加密擴展庫Mcrypt安裝和實例

    PHP加密擴展庫Mcrypt安裝和實例

    PHP加密擴展庫有Mcrypt和Mhash,其中,Mcrypt擴展庫可以實現(xiàn)加密解密功能,今天我我們講的就是Mcrypt的功能和實例
    2013-11-11
  • 從性能方面考慮PHP下載遠(yuǎn)程文件的3種方法

    從性能方面考慮PHP下載遠(yuǎn)程文件的3種方法

    這篇文章主要介紹了從性能方面考慮PHP下載遠(yuǎn)程文件的3種方法的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • Laravel配合jwt使用的方法實例

    Laravel配合jwt使用的方法實例

    這篇文章主要給大家介紹了關(guān)于Laravel配合jwt使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • ThinkPHP中獲取指定日期后工作日的具體日期方法

    ThinkPHP中獲取指定日期后工作日的具體日期方法

    在本文中,我們給大家?guī)淼氖顷P(guān)于ThinkPHP中獲取指定日期后工作日的具體日期的方法以及實例代碼,有需要的朋友們學(xué)習(xí)下。
    2018-10-10
  • YII Framework框架教程之安全方案詳解

    YII Framework框架教程之安全方案詳解

    這篇文章主要介紹了YII Framework框架教程之安全方案,結(jié)合實例形式詳細(xì)分析了針對跨站腳本攻擊,跨站請求偽造攻擊及Cookie攻擊的防范技巧,需要的朋友可以參考下
    2016-03-03
  • swoole和websocket簡單聊天室開發(fā)

    swoole和websocket簡單聊天室開發(fā)

    這篇文章主要為大家詳細(xì)介紹了swoole和websocket簡單聊天室開發(fā),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • PHP文件操作簡單介紹及函數(shù)匯總

    PHP文件操作簡單介紹及函數(shù)匯總

    這篇文章主要介紹了PHP文件操作簡單介紹及函數(shù)匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • php文件服務(wù)實現(xiàn)虛擬掛載其他目錄示例

    php文件服務(wù)實現(xiàn)虛擬掛載其他目錄示例

    這篇文章主要介紹了php文件服務(wù)實現(xiàn)虛擬掛載其他目錄示例,需要的朋友可以參考下
    2014-04-04
  • php 偽造HTTP_REFERER頁面URL來源的三種方法

    php 偽造HTTP_REFERER頁面URL來源的三種方法

    這篇文章主要介紹了php 偽造HTTP_REFERER頁面URL來源的三種方法的相關(guān)資料,需要的朋友可以參考下
    2016-09-09

最新評論

鲁甸县| 岳池县| 肃北| 南岸区| 姚安县| 阿克苏市| 神木县| 邓州市| 兴安盟| 阿克苏市| 绍兴市| 申扎县| 苏尼特左旗| 河西区| 株洲市| 叙永县| 那坡县| 建水县| 石家庄市| 民县| 北流市| 京山县| 灵台县| 无极县| 建平县| 石柱| 南宫市| 赤水市| 周宁县| 齐齐哈尔市| 彩票| 河东区| 阿克陶县| 宁夏| 辽宁省| 仁怀市| 武夷山市| 达尔| 太康县| 竹北市| 湘乡市|