【问题标题】:Custom Session Handler functions in PHP 7.2PHP 7.2 中的自定义会话处理函数
【发布时间】:2019-08-09 21:41:43
【问题描述】:

我使用自定义方法将会话存储到 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():读取会话数据失败:用户(路径: /var/lib/php/sessions) 在 /home/username/path/lib/CB/Session.php 上 第 38 行

为什么当我的函数正在向 MySQL 表写入/读取会话时,它会尝试在 /var/lib/php/sessions 读取/写入会话。 (而且我的 MySQL 表没有被填充)

【问题讨论】:

    标签: session php-7.2


    【解决方案1】:

    http://php.net/manual/en/function.session-start.php#120589找到答案
    我的读取函数必须检查会话数据是否为空,如果是则返回 ''。
    我不知道这是 PHP 中的新事物还是 bug。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      相关资源
      最近更新 更多