国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 波密县| 鄯善县| 奉贤区| 凉城县| 宣城市| 山阴县| 宜章县| 库车县| 泽库县| 龙州县| 潮安县| 普宁市| 瓦房店市| 无棣县| 吉安县| 东光县| 隆昌县| 政和县| 顺义区| 石狮市| 甘德县| 响水县| 隆子县| 谢通门县| 正蓝旗| 枣强县| 威信县| 长垣县| 光山县| 射阳县| 冀州市| 锦屏县| 寻乌县| 肥西县| 五寨县| 青岛市| 平舆县| 古田县| 呈贡县| 保定市| 秦安县|