【发布时间】:2014-03-07 20:42:48
【问题描述】:
我有一个问题 :) 我想在我的服务器上使用自己的 PHP 文件,它能够更改在同一服务器上的 MediaWiki 安装中注册的用户的选项。为此,我已经加载了 webstart 和 autoload 包括。现在,我可以毫无问题地读取此时登录用户的设置。但是,如果我想保存已编辑的设置(使用 setOption()),则会出现以下通知:
注意:未提交的数据库写入(来自 DatabaseBase::query (LCStoreDB::get) 的事务)。在 /var/www/wiki/includes/db/Database.php 的第 4065 行 注意:数据库事务回调仍在等待中(来自 Title::invalidateCache)。在 /var/www/wiki/includes/db/Database.php 第 4073 行
并且选项没有保存到数据库中:(有没有人知道如何完成我的任务,或者我可以如何解决我的问题?
谢谢!
代码如下:
<?php
$IP = strval( getenv( 'MW_INSTALL_PATH' ) ) !== ''
? getenv( 'MW_INSTALL_PATH' )
: realpath( __DIR__ . '/' );
require_once "$IP/includes/AutoLoader.php";
require_once( "$IP/includes/WebStart.php" );
$t = new User();
$user = $t->newFromSession();
if(!isset($wgCommandLineMode) && !isset($_COOKIE[session_name()])) {
wfSetupSession();
}
if ($user->isLoggedIn()) {
$user->setOption( 'skinname', 'vector' );
$user->setCookies();
$user->saveSettings();
}
?>
【问题讨论】:
-
可能与this known bug有关?
-
谢谢你,也许这是同一个错误,我已经在那里发布并会在修复错误后进行测试,谢谢 :)