一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - PHP封裝的數(shù)據(jù)庫(kù)保存session功能類(lèi)

PHP封裝的數(shù)據(jù)庫(kù)保存session功能類(lèi)

2021-02-02 16:51dotcoo PHP教程

這篇文章主要介紹了PHP封裝的數(shù)據(jù)庫(kù)保存session功能類(lèi),涉及php基于SessionHandlerInterface接口實(shí)現(xiàn)的讀取、寫(xiě)入、保存、銷(xiāo)毀等常用操作方法,需要的朋友可以參考下

本文實(shí)例講述了PHP封裝的數(shù)據(jù)庫(kù)保存session功能類(lèi)。分享給大家供大家參考,具體如下:

PHP用數(shù)據(jù)庫(kù)保存session類(lèi):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
class SafeSessionHandler implements SessionHandlerInterface {
  public $save_path;
  public $session_name;
  public $table;
  public function __construct() {
    $this->table = new Table("safe_session");
  }
  private function session_id_parse($session_id) {
    $time = hexdec(substr($session_id, 0, 8));
    $skey = substr($session_id, 8);
    return array($time, $skey);
  }
  public function close() {
    loginfo("close: ");
    return true;
  }
  public function create_sid() {
    loginfo("create_sid: ");
    $time = time();
    $skey = "";
    $char = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for ($i=0; $i<52; $i++) {
      $skey .= $char{mt_rand(0, 61)};
    }
    $session = array(
      "time" => $time,
      "skey" => $skey,
      "sval" => "",
    );
    $this->table->insert($session);
    return dechex($time) . $skey;
  }
  public function destroy($session_id) {
    loginfo("destroy: %s", $session_id);
    list($time, $skey) = $this->session_id_parse($session_id);
    $this->table->where("time = ?", $time)->where("skey = ?", $skey)->delete();
    return true;
  }
  public function gc($maxlifetime) {
    loginfo("gc: %s", $maxlifetime);
    $this->table->where("time < ?", time() - 86400 * 30)->delete();
    return true;
  }
  public function open($save_path, $session_name) {
    loginfo("open: %s, %s", $save_path, $session_name);
    $this->save_path = $save_path;
    $this->session_name = $session_name;
    return true;
  }
  public function read($session_id) {
    loginfo("read: %s", $session_id);
    list($time, $skey) = $this->session_id_parse($session_id);
    $row = $this->table->where("time = ?", $time)->where("skey = ?", $skey)->select()->fetch();
    if (empty($row)) {
      return "";
    }
    return $row["sval"];
  }
  public function write($session_id, $session_data) {
    loginfo("write: %s, %s", $session_id, $session_data);
    $session = array("sval" => $session_data,);
    list($time, $skey) = $this->session_id_parse($session_id);
    $this->table->where("time = ?", $time)->where("skey = ?", $skey)->update($session);
    return true;
  }
}

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: blacked太粗太长 | 国产a一级毛片爽爽影院 | 美女禁区视频免费观看精选 | 黑人巨茎大战欧美白妇 | 短篇同学新婚h系列小说 | 亚洲精品高清中文字幕完整版 | juy799大岛优香在线观看 | 欧美黑人换爱交换乱理伦片 | 色先锋av资源中文字幕 | 女主被男主做哭失禁高h | 国产精品福利久久2020 | 韩国最新理论三级在线观看 | sihu国产午夜精品一区二区三区 | 日韩一区二区不卡 | 四虎永久在线精品国产 | 91免费在线播放 | 秋霞啪啪片 | 无限韩国视频免费播放 | 激情综合色啪啪小说 | 国产999在线观看 | 亚洲国产成人精品无码区99 | 黑人操日本妞 | 亚洲国产精品一区二区首页 | 青青青青青国产免费手机看视频 | 国产精品毛片久久久久久久 | 国产ay| 娇妻被又大又粗又长又硬好爽 | 狠狠色综合久久久久尤物 | 欧美日韩精品一区二区三区视频在线 | 五月天91| 久久精品热在线观看85 | 欧美专区视频 | 五月最新女厕所高跟嘘嘘 | 男人摸女人下面 | 毛片网站大全 | 任我行视频在线观看国语 | 性插图动态图无遮挡 | 精品视频国产 | 狠狠干狠狠插 | 男人的天堂久久 | 猫咪maomiav永久网址 |