VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php session 写入数据库

这篇文章主要介绍了php session 写入数据库的相关资料,需要的朋友可以参考下,本文实例介绍了php session 写入数据库的方法,分享给大家供大家参考,具体内容如下

  1. <?php 
  2.    
  3. # 
  4. #  codeMaker Alpha 0.1.1 ( haowei.me ) 
  5. #  This framework comply with the GPL license agreement 
  6. # 
  7.    
  8. class session_handler { 
  9.      
  10.   protected $maxlifetime = null; 
  11.   protected $dbHandle = null; 
  12.   public $config = null; 
  13.      
  14.   public static function init($args) { 
  15.     return new self($args); 
  16.   } 
  17.      
  18.   public function __construct($args) { 
  19.        
  20.     $this->config = $args; 
  21.     $this->maxlifetime = get_cfg_var("session.gc_maxlifetime"); 
  22.     session_set_save_handler( 
  23.     array($this, "open"), 
  24.     array($this, "close"), 
  25.     array($this, "read"), 
  26.     array($this, "write"), 
  27.     array($this, "destroy"), 
  28.     array($this, "gc")); 
  29.        
  30.   } 
  31.      
  32.   public function open() { 
  33.     $this->link = mysqli_connect( 
  34.     $this->config['host'],  
  35.     $this->config['user'],  
  36.     $this->config['password'],  
  37.     $this->config['database']); 
  38.     mysqli_set_charset($this->link, "utf8"); 
  39.     $sql = 'CREATE TABLE IF NOT EXISTS `%s` ( 
  40.     `session_id` varchar(255) NOT NULL, 
  41.     `session_data` text, 
  42.     `session_expires` char(10) NOT NULL, 
  43.     PRIMARY KEY (`session_id`) 
  44.     ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;'; 
  45.     $sql = sprintf($sql, $this->config['table']); 
  46.     mysqli_query($this->link, $sql); 
  47.     return true; 
  48.   } 
  49.      
  50.   public function close() { 
  51.     return true; 
  52.   } 
  53.      
  54.      
  55.   public function read($session_id) { 
  56.     if(emptyempty($session_id)) return null; 
  57.        
  58.     $sql = 'SELECT `session_data` AS `data` FROM `%s` WHERE `session_id` = "%s" AND `session_expires` > "%u"'; 
  59.     $sql = sprintf($sql,  
  60.     mysqli_real_escape_string($this->link, $this->config['table']),  
  61.     mysqli_real_escape_string($this->link, $session_id), 
  62.     time()); 
  63.        
  64.     $result = mysqli_query($this->link, $sql); 
  65.     $row = mysqli_fetch_assoc($result); 
  66.     return $row['data']; 
  67.        
  68.   } 
  69.      
  70.   public function write($session_id, $session_data) { 
  71.     if(emptyempty($session_id)) return null; 
  72.        
  73.     $newExpires = time() + $this->maxlifetime; 
  74.     $sql = 'REPLACE INTO `%s` SET `session_id` = "%s", `session_data` = "%s", `session_expires` = "%u"'; 
  75.     $sql = sprintf($sql,  
  76.     mysqli_real_escape_string($this->link, $this->config['table']),  
  77.     mysqli_real_escape_string($this->link, $session_id), 
  78.     mysqli_real_escape_string($this->link, $session_data), 
  79.     $newExpires); 
  80.        
  81.     $result = mysqli_query($this->link, $sql); 
  82.     return mysqli_affected_rows($this->link); 
  83.        
  84.   } 
  85.      
  86.   public function destroy($session_id) { 
  87.     $sql = 'DELETE FROM `%s` WHERE `session_id` = "%s"'; 
  88.     $sql = sprintf($sql,  
  89.     mysqli_real_escape_string($this->link, $this->config['table']),  
  90.     mysqli_real_escape_string($this->link, $session_id)); 
  91.    
  92.     $result = mysqli_query($this->link, $sql); 
  93.     return mysqli_affected_rows($this->link); 
  94.   } 
  95.      
  96.   public function gc() { 
  97.     $sql = 'DELETE FROM `%s` WHERE `session_expires` < "%u"'; 
  98.     $sql = sprintf($sql,  
  99.     mysqli_real_escape_string($this->link, $this->config['table']),  
  100.     time()); 
  101.        
  102.     $result = mysqli_query($this->link, $sql); 
  103.     return mysqli_affected_rows($this->link); 
  104.   } 
  105.      
  106. } 
  107.    
  108. class session { 
  109.    
  110.   public static $collection = null; 
  111.      
  112.   public static function open($clean = false, $token = false) { 
  113.     if($clean) ob_end_clean(); 
  114.     if($token) session_id($token); 
  115.     session_start(); 
  116.     self::$collection = $_SESSION; 
  117.   } 
  118.      
  119.   public static function id() { 
  120.     $num_args = func_num_args(); 
  121.     if($num_args) { 
  122.       $args = func_get_arg(0); 
  123.       return session_id($args); 
  124.     }else{ 
  125.       return session_id(); 
  126.     } 
  127.   } 
  128.      
  129.   public static function get($name) { 
  130.     return isset($_SESSION[$name]) ? $_SESSION[$name] : null; 
  131.   } 
  132.      
  133.   public static function set($name, $value) { 
  134.     $_SESSION[$name] = $value; 
  135.     return true; 
  136.   } 
  137.      
  138.   public static function delete($name) { 
  139.     if(!isset($_SESSION[$name])) return null; 
  140.     unset($_SESSION[$name]); 
  141.     return true; 
  142.   } 
  143.      
  144.   public static function destroy() { 
  145.     session_destroy(); 
  146.   } 
  147.      
  148. } 
  149.    
  150.    
  151.    
  152. $config = array( 
  153. "host"=> "127.0.0.1", 
  154. "user"=> "root", 
  155. "password"=> "123456", 
  156. "database"=> "test", 
  157. "charset"=> "utf8", 
  158. "table"=> "user_session"); 
  159.    
  160. session_handler::init($config); 
  161. session::open(); 
  162. session::set("profile", array("id"=> 1, "user"=> "haowei", "vip-level"=> 6)); 

以上就是本文的全部内容,希望对大家的学习有所帮助。

 

出处:http://www.phpfensi.com/php/20210709/17122.html


相关教程