下面直接从php手册中复制,我不知道如何设置它,我只需要做两件事......
每次在页面上有session_start时,是否需要为每个实例运行sessionsavehandler()?如果有人能够概述我需要采取的步骤来使用这个很棒的课程。
<?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();
?>
答案 0 :(得分:1)
我不确定如何设置它,每次在页面上有session_start时,是否需要为每个实例运行sessionsavehandler?
是的,您只需在调用session_start
之前创建 SessionSaveHandler 的新实例,而不是 。
我想改变sesison_cache过期,还是应该在课堂上这样做?
您只是覆盖默认存储处理程序;其余的保持不变。因此,请像以前一样使用session_cache_expire
。
如果有人能够概述我需要采取的步骤来使用这个很棒的课程。
如前所述,您只是重写了PHP的默认会话存储处理程序。在调用session_start
之前,而不是 创建会话存储处理程序 SessionSaveHandler 的新实例。除此之外,没有什么不同于使用PHP的默认会话处理程序。