【问题标题】:ZF2 : Trouble with session for authenticationZF2:身份验证会话出现问题
【发布时间】:2023-03-12 06:55:01
【问题描述】:

身份验证后会话出现奇怪问题。

整个认证部分工作,麻烦来了:

        $result = $this->getAuthService()->authenticate();

            if ($result->isValid()) {
                $storage = $this->getAuthService()->getStorage();
                $storage->write(($this->getAuthService()
                        ->getAdapter()
                        ->getResultRowObject(array(
                                'email_utilisateur',
                                'password_utilisateur',
                            ))));
                $redirect = 'success';                    
            }

现在,我已登录,并且电子邮件+密码存储在“Zend_Auth”键中(不要注意我存储密码顺便说一句,这是示例^^)。

但是当我进入另一个页面时(即使它是相同的),我的会话密钥“Zend_auth”被破坏,并且我有一个不完整的 PHP 对象....

Array
(
     [__ZF] => Array
         (
             [_REQUEST_ACCESS_TIME] => 1369667659.7526
         )

     [Zend_Auth] => __PHP_Incomplete_Class Object
        (
            [__PHP_Incomplete_Class_Name] => Zend\Stdlib\ArrayObject
        )

)

那么,知道为什么更改页面会破坏我的会话变量吗?

在此先感谢,我在这个问题上花了大约 5 个小时,测试东西等等......

28/05/2013 编辑:

所以,我还是没找到。 无论如何,被破坏的对象是 Zend\Stdlib\ArrayObject。这个数组对象被破坏的一个原因是会话在包含 avec Zend\Stdlib\ArrayObject 之前开始。我会尝试弄清楚,但如果这是原因,那么这是框架的错误。顺便说一句,我使用的是 ZF 2.2。

【问题讨论】:

  • 如果您在 session.auto_start 0 时遇到此错误,您的编辑实际上是正确的。您是否看到在 zf 2.1.3 + 中启动会话之前加载所有需要的类的方法?
  • 此问题在 ZfcUser 和 auto_start 设置为 0 的某些情况下仍然存在。似乎被低估了。

标签: php zend-framework2 session-variables


【解决方案1】:

我找到了! 因此,如前所述,原因是会话在应用程序知道 ArrayObject 之前就开始了。而且,你可以在那里读到:

https://zf2-docs.readthedocs.org/en/latest/modules/zend.session.advanced-usage.html

**Do not enable PHP‘s session.auto_start setting. If you do not have the ability to disable this.**

事情就是这样。 session.auto_start 在我的 php.ini 中启用。为了解决这个问题,您必须在 php.ini 文件中将其设置为 0:

php_value session.auto_start 0

如果您的 PHP 用于多个应用程序/站点,则将此行添加到您的 .htaccess 中:

php_value session.auto_start 0

这将覆盖 php.ini 的实际值

希望对某人有所帮助^^。

【讨论】:

  • 除此之外,请注意在加载 Zend 之前不要在任何地方使用 session_start() :)
猜你喜欢
  • 2015-08-27
  • 2019-05-03
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-16
  • 2013-06-22
  • 2017-06-16
相关资源
最近更新 更多