[英]PHP using session_set_save_handler
下面是直接從php手冊復制而來的,我不確定如何設置它,我只需要做兩件事。
每當頁面上有session_start時,是否需要為每個實例運行sessionavehandler()? 如果有人可以概述使用該課程所需要采取的步驟,那就太好了。
<?php
new SessionSaveHandler();
?>
<?php
class SessionSaveHandler {
protected $savePath;
protected $sessionName;
public function __construct() {
session_set_save_handler(
array($this, "open"),
array($this, "close"),
array($this, "read"),
array($this, "write"),
array($this, "destroy"),
array($this, "gc")
);
}
public function open($savePath, $sessionName) {
$this->savePath = $savePath;
$this->sessionName = $sessionName;
return true;
}
public function close() {
// your code if any
return true;
}
public function read($id) {
// your code
}
public function write($id, $data) {
// your code
}
public function destroy($id) {
// your code
}
public function gc($maxlifetime) {
// your code
}
}
new SessionSaveHandler();
?>
我不確定如何設置它,是否每次在頁面上都有session_start時都需要為每個實例運行sessionavehandler?
是的,您只需創建一個SessionSaveHandler的新實例 代替 在調用session_start
之前 。
我也想更改sesison_cache過期,還是應該在該類中更改?
您只是覆蓋默認的存儲處理程序; 其余的保持不變。 因此,請像以前一樣使用session_cache_expire
。
如果有人可以概述使用該課程所需要采取的步驟,那就太好了。
如前所述,您只是在覆蓋PHP的默認會話存儲處理程序。 所以 代替 在調用session_start
之前,請創建會話存儲處理程序SessionSaveHandler的新實例。 除此之外,使用PHP的默認會話處理程序沒有什么不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.