Mediawiki $会话[';mydata';]在MW中消失

Mediawiki $会话[';mydata';]在MW中消失,mediawiki,Mediawiki,我试图了解MW 1.31.1是如何工作的。我有以下的钩子: $wgHooks['UserLoginComplete'][] = 'onUserLoginComplete'; function onUserLoginComplete(User &$user, &$inject_html, $direct){ $_SESSION['mydata'] = 'some data'; } 当用户成功通过身份验证时,它基本上会在$\u会话中存储一些数据。只要我经过身份验证,

我试图了解MW 1.31.1是如何工作的。我有以下的钩子:

$wgHooks['UserLoginComplete'][] = 'onUserLoginComplete';

function onUserLoginComplete(User &$user, &$inject_html, $direct){
      $_SESSION['mydata']  = 'some data';
}
当用户成功通过身份验证时,它基本上会在$\u会话中存储一些数据。只要我经过身份验证,我如何使$_会话['mydata']保持在会话中

令我困惑的是,当我在signin选中“让我登录”并在几个小时后返回wiki站点时。我仍然通过系统进行身份验证,但$\u会话['mydata']消失。

自1.27引入以来,MediaWiki自行进行会话处理。根据其值,它将完全忽略PHP会话或尝试将它们与MediaWiki会话同步。改用MediaWiki的会话处理方法:

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

至于从会话中消失的数据,这并不意味着它是一种持久性存储机制,长期行为完全取决于为其配置的存储机制-请检查并重试。

Tgr,感谢您提供的信息。我试图让“与MediaWiki会话同步”,但没有成功。您介意发布设置以使其在Windows计算机上工作吗?再次感谢!默认设置应保持与$\u会话的向后兼容性。您的问题更可能是会话过期-正如我所说的“让我登录”不会使会话变长,它只是将登录状态与会话分离。你可能需要更长的时间;请参阅我答案末尾的链接。使用默认配置,您可能只需要增加$wgObjectCacheSessionExpiry。