session_start():会话回调需要true/false返回值-已返回true

sd2nnvve  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(358)

在有人说这个问题已经得到解答之前,不幸的是,这个解决方案似乎对我不起作用。
我将编写一个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)

有没有人知道为什么这里似乎不承认回归真?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题