国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP封裝的數據庫保存session功能類

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

本文實例講述了PHP封裝的數據庫保存session功能類。分享給大家供大家參考,具體如下:

PHP用數據庫保存session類:

<?phpclass 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;  }}

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


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 南乐县| 威宁| 天门市| 涟水县| 广德县| 临沭县| 杭州市| 余庆县| 新宾| 霍林郭勒市| 武清区| 西和县| 苏州市| 临洮县| 临颍县| 固镇县| 手机| 边坝县| 荣成市| 武强县| 炉霍县| 泸溪县| 揭西县| 绩溪县| 临泉县| 永福县| 平塘县| 武宣县| 玉山县| 板桥市| 台湾省| 西安市| 九江市| 额敏县| 鄂尔多斯市| 清水县| 奉贤区| 昭平县| 绍兴市| 高密市| 奉贤区|