$ _SESSION ['mydata']在MW中消失

时间:2018-11-10 22:51:40

标签: mediawiki

我试图了解MW 1.31.1的工作原理。我有以下钩子:

+----+-----+---+
|  id| name|age|
+----+-----+---+
|null| John| 30|
|null|James| 40|
|null|Peter| 45|
+----+-----+---+

root
    |-- id: string (nullable = true)
    |-- name: string (nullable = false)
    |-- age: integer (nullable = false)

基本上,当用户成功通过身份验证时,它将一些数据存储在$ _SESSION中。只要通过身份验证,如何在会话中保留$ _SESSION ['mydata']。

令我感到困惑的是,当我在登录时选中“保持登录状态”并在数小时后返回Wiki站点时。我仍通过该系统进行身份验证,但是$ _SESSION ['mydata']消失了。

1 个答案:

答案 0 :(得分:1)

自引入SessionManager以来的1.27开始,MediaWiki进行自己的会话处理。根据{{​​3}}的值,它要么完全忽略PHP会话,要么尝试将它们与MediaWiki会话同步。改用MediaWiki的会话处理方法:

SessionManager::getGlobalSession()->set( 'mydata', 'some data' );

对于从会话中消失的数据,这并不意味着它是持久存储机制,长期行为完全取决于为其配置的存储机制-检查$wgPHPSessionHandling$wgSessionCacheType