仅为一页设置 session_set_save_handler

Setting session_set_save_handler for one page only

在我的 php.ini 中,我有以下设置:

session.save_handler = redis
session.save_path = "tcp://localhost:6379?weight=1"

但我想保留该设置,因为它与我正在使用的这个系统一起工作,但唯一的问题是当我尝试创建会话时它给我错误.. 跑题了。

问题是,我试图将保存处理程序设置为仅供我 login.php 使用的文件,然后再使用 redis。

我的文件中有以下代码,但没有从 redis 更改为文件:

session_set_save_handler('files');
session_save_path("/tmp/");
session_start(); // Starting Session

session_set_save_handler function doesn't exactly do the same thing as the session.set_handler configuration directive. The former expects a callable type 作为它的第一个参数,而后者期望一个标量值作为 PHP.

中注册的处理程序之一

你想说的就是ini_set('session.save_handler', 'files').

当您为 redis 会话处理程序设置 session.save_path 时,您应该避免使用无法通过 DNS 解析器直接解析的主机名。这几乎是您在 /etc/hosts 中输入的任何内容,例如 localhost。相反,尝试使用 redis 直接监听的 IP 地址,例如 127.0.0.1。这样做的原因是 PHP 在解析主机名时不会尝试直接查看 /etc/hosts