我试图了解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']消失了。
答案 0 :(得分:1)
自引入SessionManager以来的1.27开始,MediaWiki进行自己的会话处理。根据{{3}}的值,它要么完全忽略PHP会话,要么尝试将它们与MediaWiki会话同步。改用MediaWiki的会话处理方法:
SessionManager::getGlobalSession()->set( 'mydata', 'some data' );
对于从会话中消失的数据,这并不意味着它是持久存储机制,长期行为完全取决于为其配置的存储机制-检查$wgPHPSessionHandling
和$wgSessionCacheType