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

4si2a6ki  于 2022-11-09  发布在  PHP
关注(0)|答案(3)|浏览(193)

我的源代码Yii有这个问题,当我使用xdebug。我不知道为什么。

ua4mk5z4

ua4mk5z41#

它看起来像你使用Yii 1与PHP 7.2根据this post和一些其他来源,如this onethis one,你有一个yii的错误,可以报告here
答案来自另一个主题:
我在www.example.com上做了一个bug报告php.net,他们解释说这不是bug。是的,在PHP 7.2中,现在生成了一个警告。然而,这从来没有像预期的那样工作,它只是默默地失败了。
要创建多个会话,需要使用session_id()。PHP如何创建多个会话?
如果会话已在运行,则session_name()和session_set_cookie_params()始终是无意义的。
对于原始答案请看这里:https://bugs.php.net/bug.php?id=75650&thanks=2

lx0bsm1f

lx0bsm1f2#

简单修复:

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(...
3zwjbxry

3zwjbxry3#

这是我的工作:
1.在protected/components文件夹中创建新类SomeSession

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.已完成=]

相关问题