session - PHP 7.2 中的自定义会话处理函数
问题描述
我使用自定义方法将会话存储到 MySQL 表中。
private static function load()
{
session_module_name("user");
session_set_save_handler(['\CB\Session', 'open'],
['\CB\Session', 'close'],
['\CB\Session', 'read'],
['\CB\Session', 'write'],
['\CB\Session', 'remove'],
['\CB\Session', 'gc']
);
session_start();
}
现在我不得不注释掉它,session_module_name("user");
因为它在 PHP 7.2 中被删除了。但现在我得到了错误:
警告:session_start():无法读取会话数据:第 38 行 /home/username/path/lib/CB/Session.php 中的用户(路径:/var/lib/php/sessions)
为什么当我的函数将它们写入/读取到 MySQL 表时,它会尝试在 /var/lib/php/sessions 读取/写入会话。(而且我的 MySQL 表没有被填充)
解决方案
在http://php.net/manual/en/function.session-start.php#120589找到了答案
我的读取函数必须检查会话数据是否为空,如果是则返回 ''。
我不知道这是 PHP 中的新事物还是错误。
推荐阅读
- android - Android Studio 不断同步文件
- arrays - 如何在 Unity3d 检查器中显示锯齿状数组?
- java - 复选框在带有动画的android中不起作用
- javascript - 从 html 中获取一个值并使用 javascript 更新 DOM
- mocking - 使用 axios 拦截器模拟 axios
- gtfs - 如何在 GTFS 数据中为每次旅行具有多个形状的路线构建折线
- github - 是否可以在 GitHub Actions 中的 Actions 之间保留 WORKDIR?
- xamarin.forms - 当控件获得焦点时更改 XamarinForms 条目的 TextColor
- json - 为什么使用 Postman 使用 JSON 调用 Express 时 req.body 总是为空?
- powershell - 从传递参数的 vbs 调用 power shell 脚本时出错