PHP警告:session_set_save_handler():会话处于活动状态时无法更改保存处理程序

时间:2019-10-15 07:07:34

标签: php yii xdebug

当我使用xdebug时,我的来源Yii遇到了这个问题。我不知道为什么。

enter image description here

3 个答案:

答案 0 :(得分:0)

似乎您在PHP 7.2中使用Yii 1 根据{{​​3}}和其他来源,例如this postthis one,您有一个yii错误,可以报告为this one

另一个主题的答案:

  

我在php.net上做了一个错误报告,他们解释说这是   不是错误。是的,在PHP 7.2中现在会生成警告。但是这个   从未按预期工作,只是默默地失败了。

     

要创建多个会话,需要使用session_id()。   看看这个相关的问题:PHP如何创建多个   会议?

     

session_name()以及session_set_cookie_params()始终是   如果会话已经在运行,则无意义。

     

原始答案在这里查看:   here

答案 1 :(得分:0)

简单修复:

function _read($id)  
   PHP 7.0 -> if is empty return false
   PHP 7.2 -> if is empty return ''

然后将@添加到其他函数中,并记住在会话开始之前运行session_name

@session_name('SOMEID');
@session_start(...
...
@session_set_save_handler(...

答案 2 :(得分:0)

这对我有用:

  1. SomeSession文件夹中创建新的课程protected/components
class SomeSession extends CCacheHttpSession
{
    public function open()
    {
// don't start new session if session is started now
    if (session_status() === PHP_SESSION_NONE) 
    {
           parent::open();
    }
}
  1. main.php部分的session中进行编辑:
'session'      => [
            'class'       => SomeSession::class,
            'sessionName' => 'SomeSessionName',
            'autoStart'   => true,
            'cookieMode'  => 'allow',
        ]
  1. 完成=]