在有人说这个问题已经得到解答之前,不幸的是,这个解决方案似乎对我不起作用。
我将编写一个redissessionhandler类来实现sessionhandlerinterface,并尝试为用户保存一个会话,以便记住他们登录到特定设备的情况。
有人告诉我,出现上述错误的原因是open()函数不返回true。原来是这样的(以前是空的),但现在我的open函数是这样的:
public function open($save_path, $name)
{
Log::info("opening session handler");
return true;
}
日志是为我自己的记录,它确实记录正确,但错误出现后直接。下面是我如何在代码中实现它:
在我的结构中:
$this->db = new Client();
$this->sessionHandler = new RedisSessionHandler($this->db, 'DEVICE:');
在设置要发送到服务器的用户名和密码之前的登录功能中:
session_set_save_handler($this->sessionHandler);
session_start();
$remember_device = $this->sessionHandler->read('remember_device');
我不完全确定问题出在哪里,因为open()函数确实返回true。顺便说一下,当open()函数为空时,我得到的错误是:
session_start(): Failed to initialize storage module: user (path: /var/lib/php/sessions)
有没有人知道为什么这里似乎不承认回归真?
暂无答案!
目前还没有任何答案,快来回答吧!