亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php基于session實現數據庫交互的類實例

2024-05-04 23:38:32
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php基于session實現數據庫交互的類,實例分析了php結合session操作數據庫的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了php基于session實現數據庫交互的類。分享給大家供大家參考。具體如下:

 

 
  1. <?php 
  2. /** 
  3. * session 數據庫存儲類 
  4. */ 
  5. class Session { 
  6. private static $session_id = 0; 
  7. private static $session_data = array(); 
  8. private static $is_update = FALSE; 
  9. private static $is_del = FALSE; 
  10. private static $is_gc = FALSE; 
  11. private static $dbo = NULL; //數據庫連接句柄 
  12. private static $gc_max_time = 1440; 
  13. private static $table = 'sessions'
  14. private static $pre_key = 'weige';//session 密鑰 
  15. //捆綁使用哈 
  16. private static $gc_rate_de = 100;//代表分母 
  17. private static $gc_rate_co = 20;//代表分子 
  18. private static $path = '/';//保存路徑 
  19. private static $domain = null; //域 
  20. private static $secure = false;//默認 
  21. private static $httponly = false;//默認 
  22. /** 
  23. * 獲取數據庫句柄 私有 
  24. */ 
  25. private static function open()  
  26. if (!self::$dbo)  
  27. self::$dbo = Db::factory(); 
  28. return TRUE; 
  29. /** 
  30. * 設置 
  31. * */ 
  32. public static function set($key$val=NULL)  
  33. self::open(); 
  34. $data = self::read(); 
  35. if ($data === FALSE) 
  36. $data = array(); 
  37. if (!$val && is_array($key)) 
  38. $data = $key
  39. }  
  40. else if ($val && is_string($key)) 
  41. $data[$key] = $val
  42. self::write($data); 
  43. self::close(); 
  44. /** 
  45. *獲取值  
  46.  
  47. */ 
  48. public static function get($key=NULL) { 
  49. self::open(); 
  50. self::$session_data = self::read(); 
  51. $ret = ''
  52. if (!$key) { 
  53. $ret = self::$session_data
  54. else if(is_array(self::$session_data) && isset(self::$session_data[$key])) { 
  55. $ret = self::$session_data[$key]; 
  56. self::update();  
  57. self::close(); 
  58. return $ret
  59. /** 
  60. * 刪除或者重置 
  61. * */ 
  62. public static function del($key
  63. if (!self::$is_del)  
  64. self::open(); 
  65. $val = self::read(); 
  66. if (isset($val[$key]))  
  67. unset($val[$key]); 
  68. $session_id = self::$session_id
  69. $session_data = serialize($val); 
  70. $session_expire = TIME + self::get_gc_maxtime(); 
  71. self::$dbo->query("update ".self::$table." set value='$session_data', expiry='$session_expire' where session_id='$session_id'"); 
  72. self::close(); 
  73. self::$is_del = TRUE; 
  74. /** 
  75. * 銷毀 
  76.  
  77. * */ 
  78. public static function destroy()  
  79. $session_id = self::get_session_id(); 
  80. $_COOKIE['WBSID'] = ''
  81. self::open(); 
  82. self::$dbo->query("delete from ".self::$table." where session_id='$session_id'"); 
  83. self::close(); 
  84. /** 
  85. * 讀取 私有 
  86. * */ 
  87. private static function read() 
  88. $session_id = self::$session_id
  89. if (!$session_id) { 
  90. $session_id = self::get_session_id(); 
  91. if (!$session_idreturn array(); 
  92. $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? md5($_SERVER['HTTP_USER_AGENT']) : ''
  93. $client_ip = Fun::getIp(); 
  94. $session_expire = TIME - self::get_gc_maxtime(); 
  95. $rs = self::$dbo->fetchRow("select session_id, value, agent, ip from ".self::$table." 
  96. where session_id='$session_id' and expiry>'$session_expire'"); 
  97. if (!$rs || $rs['agent'] != $user_agent || $rs['ip'] != $client_ip)  
  98. return FALSE; 
  99. self::$session_id = $rs['session_id']; 
  100. return unserialize($rs['value']); 
  101. /** 
  102. * session 寫入 私有 
  103. * */ 
  104. private static function write(array $session_data)  
  105. $session_id = self::$session_id
  106. if (!$session_id
  107. $session_id = self::get_session_id(); 
  108. $session_expire = TIME + self::get_gc_maxtime(); 
  109. $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? md5($_SERVER['HTTP_USER_AGENT']) : ''
  110. $client_ip = Fun::getIp(); 
  111. $session_data = serialize($session_data); 
  112. if (self::$session_id && self::$session_id === $session_id)  
  113. self::$dbo->query("update ".self::$table." set value='$session_data', expiry='$session_expire', agent='$user_agent', ip='$client_ip' where session_id='$session_id'"); 
  114. }  
  115. else 
  116. self::$session_id = $session_id = self::create_session_id(); 
  117. self::$dbo->query("insert into ".self::$table."(session_id, value, expiry, agent, ip)  
  118. values('$session_id''$session_data''$session_expire''$user_agent''$client_ip')"); 
  119. return true; 
  120. /** 
  121. * session 更新 私有 
  122. * */ 
  123. private static function update()  
  124. if (!self::$is_update)  
  125. $session_id = self::$session_id
  126. $session_expire = TIME + self::get_gc_maxtime(); 
  127. self::$dbo->query("update ".self::$table." set expiry='$session_expire' where session_id='$session_id'"); 
  128. self::$is_update = TRUE; 
  129. private static function close()  
  130. if (!self::$is_gc && mt_rand(1, self::$gc_rate_de)%self::$gc_rate_co == 0)  
  131. self::gc(); 
  132. self::$is_gc = TRUE; 
  133. /** 
  134. * 過期session 清除 隨機觸發 
  135. * */ 
  136. private static function gc()  
  137. $session_expire = TIME - self::get_gc_maxtime(); 
  138. self::$dbo->query("delete from ".self::$table." where expiry<'$session_expire'"); 
  139. private static function get_session_id()  
  140. if (isset($_COOKIE['WBSID']) && strlen($_COOKIE['WBSID'])==32)  
  141. $sid = $_COOKIE['WBSID']; 
  142. setcookie('WBSID'$sid, TIME + self::get_gc_maxtime(), self::$path, self::$domain, self::$secure, self::$httponly); 
  143. return $sid
  144. return null; 
  145. private static function create_session_id()  
  146. $sid = self::get_session_id(); 
  147. if (!$sid)  
  148. $sid = Fun::getIp() . TIME . microtime(TRUE) . mt_rand(mt_rand(0, 100), mt_rand(100000, 90000000)); 
  149. $sid = md5(self::$pre_key . $sid); 
  150. setcookie('WBSID'substr($sid, 0, 32), TIME + self::get_gc_maxtime(), self::$path, self::$domain, self::$secure, self::$httponly); 
  151. return $sid
  152. public static function get_gc_maxtime() 
  153. return self::$gc_max_time

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91禁外国网站| 久久久人成影片一区二区三区观看| 狠狠色狠狠色综合日日小说| 日韩精品视频免费专区在线播放| 久久久久一本一区二区青青蜜月| 久久电影一区二区| www日韩欧美| 91精品国产91久久久久福利| 中文字幕亚洲欧美| 久青草国产97香蕉在线视频| www.久久久久| 欧美大全免费观看电视剧大泉洋| 日韩av免费看| 国产成人精品国内自产拍免费看| 欧美日韩激情小视频| 中文字幕亚洲欧美一区二区三区| 国模视频一区二区三区| 一区二区在线视频| 欧美专区福利在线| 中文字幕日韩欧美精品在线观看| 国产亚洲精品va在线观看| 欧美疯狂xxxx大交乱88av| 日韩精品免费在线观看| 狠狠色香婷婷久久亚洲精品| 青青草国产精品一区二区| 精品国产网站地址| 一区二区在线视频| 久久网福利资源网站| 亚洲国产天堂久久综合网| 懂色av影视一区二区三区| 欧美性videos高清精品| 国产精品日韩精品| 亚洲老头同性xxxxx| 欧美激情2020午夜免费观看| 一区二区三区无码高清视频| 亚洲图片在线综合| 91免费人成网站在线观看18| 亚洲曰本av电影| 日韩中文在线观看| 97涩涩爰在线观看亚洲| 久久久久久久亚洲精品| 亚洲国产天堂久久综合| 91精品国产高清久久久久久| 国产精品福利无圣光在线一区| 欧美主播福利视频| 韩国视频理论视频久久| 亚洲乱亚洲乱妇无码| 久久人人看视频| 国产精品第二页| 日韩av综合网站| 国产午夜精品一区理论片飘花| 亚洲丝袜在线视频| 高清欧美一区二区三区| 亚洲a级在线观看| 久久久久久久久久av| 欧美高清视频在线观看| 欧美国产日本高清在线| 色婷婷成人综合| 欧美精品videos另类日本| 成人日韩在线电影| 欧美激情免费在线| 精品国产美女在线| 欧美亚洲成人精品| 啊v视频在线一区二区三区| 精品国产欧美一区二区三区成人| 国产一区二区三区在线免费观看| 欧美日韩福利在线观看| 国产激情视频一区| 日韩av电影手机在线观看| 久久久久久久久久久91| 国产日韩欧美中文| 人九九综合九九宗合| 中国china体内裑精亚洲片| 91性高湖久久久久久久久_久久99| 亚洲一区精品电影| 国产香蕉精品视频一区二区三区| 在线视频日韩精品| 欧美不卡视频一区发布| 国产精品久久久久久久久久| 欧美一级视频在线观看| 欧美老女人性生活| 国产99久久精品一区二区 夜夜躁日日躁| 中文字幕亚洲在线| 国产精品久久久久久久一区探花| 久久亚洲成人精品| 草民午夜欧美限制a级福利片| 国产成人精品在线视频| 欧美一区二区三区……| 欧美日韩在线影院| 欧美性理论片在线观看片免费| 国产精品第8页| 亚洲激情国产精品| 日韩小视频网址| 成人性生交大片免费看小说| 欧美成在线视频| 日本最新高清不卡中文字幕| 国产精品都在这里| 国产精品久久久久久久电影| 欧美精品电影免费在线观看| 亚洲欧洲激情在线| 中文字幕日韩在线观看| 91经典在线视频| 91亚洲永久免费精品| 色阁综合伊人av| 亚洲国产第一页| 国产精品自产拍在线观看中文| 中日韩午夜理伦电影免费| 亚洲视频在线观看视频| 性欧美在线看片a免费观看| 日本成人黄色片| 国产精品一区二区三区久久久| 久久久91精品国产一区不卡| 成人激情视频在线播放| 国产精品欧美一区二区三区奶水| 亚洲国产精品久久久久秋霞不卡| 久久人人爽国产| 美女黄色丝袜一区| 国产精品18久久久久久麻辣| 国产精品爱啪在线线免费观看| 91av视频导航| 97精品国产97久久久久久免费| 日韩有码在线视频| 欧美激情一区二区三区久久久| 欧美激情在线观看| 亚洲天堂开心观看| 国产精品激情av电影在线观看| 久久国产天堂福利天堂| 国产精品高潮视频| 2019中文字幕全在线观看| 欧美另类xxx| 成人在线视频网| 最近中文字幕mv在线一区二区三区四区| 亚洲午夜女主播在线直播| 欧美精品18videosex性欧美| 国产精品91一区| 亚洲老板91色精品久久| 久久精品久久精品亚洲人| 91久久久久久久| 中文字幕一精品亚洲无线一区| 欧美韩日一区二区| 日韩在线视频播放| 91国在线精品国内播放| 亚洲影院色在线观看免费| 精品国产鲁一鲁一区二区张丽| 最新国产精品拍自在线播放| 欧美限制级电影在线观看| 精品亚洲夜色av98在线观看| 久久影视电视剧凤归四时歌| 国产日韩精品在线| 欧美日韩成人网| 国产成人精品久久亚洲高清不卡| 国产精品视频1区| 精品高清美女精品国产区| 国产精品欧美一区二区| 欧美一性一乱一交一视频| 日韩欧美国产成人| 91在线精品播放| 亚洲新中文字幕| 国产精品女人网站| 日本午夜在线亚洲.国产| 久久亚洲综合国产精品99麻豆精品福利| 亚洲一区二区久久| 亚洲天堂av综合网| 亚洲第一中文字幕|