2016-05-18 50 views
0

我为我的http服务器(apache)设置了一个自定义注册页面,该页面托管许多服务,包括一个wiki。 预期的目标是让用户立即注册所有这些服务,包括wiki当然。Mediawiki从自定义注册页面添加用户

对于wiki,我尝试重新排列“CreateAndPromote”维护脚本并将其放入我的页面。现在我来到了这个片段

$path = "/wiki"; 
 
putenv("MW_INSTALL_PATH={$path}"); 
 
require_once ("/wiki/includes/WebStart.php"); 
 
chdir("wiki"); 
 

 
$mediaWiki = new MediaWiki(); 
 

 

 
$name = $_POST['username']; 
 
$pass = $_POST['password']; 
 

 

 
$user = User::newFromName($name); 
 

 

 
if (!is_object($user)) { 
 
\t die("Invalid user!\n"); 
 
} 
 

 
$exists = (0 !== $user->idForName()); 
 

 
if (!$exists) { 
 
    $user->addToDatabase(); 
 
} \t 
 

 
\t \t 
 
try { 
 
\t $user->setPassword($pass); 
 
\t 
 

 
} catch (PasswordError $pwe) { 
 
\t die("password error:" . $pwe->getText().""); 
 
} 
 

 

 
$user->addGroup("editor"); 
 
$user->saveSettings(); 
 

 
$ssu = new SiteStatsUpdate(0, 0, 0, 0, 1); 
 
$ssu->doUpdate();

,但我得到

Error: LightnCandy class not defined 

链接到MediaWiki 1.25.2 PHP 5.6.12(apache2handler)

+2

做到这一点,更简单的方法是使用的API:https://www.mediawiki.org/wiki/API:Account_creation – leo

+0

感谢您指点我的apis,但在像我的情况下,mediawiki本身建议使用WebStart.php来直接调​​用MediaWiki类和函数https://www.mediawiki.org/wiki/API :Client_code#PHP –

+0

类未定义错误的解决方案通常运行Composer。 – Tgr

回答

0

的问题简单如此: 宣布MW_INSTALL_PATH就像那样显然没有工作

$path = "/wiki"; 
putenv("MW_INSTALL_PATH={$path}"); 
require_once ("/wiki/includes/WebStart.php"); 

,所以我不得不改变目录的wiki之前需要webstart.php

chdir("wiki"); 
require_once ("/includes/WebStart.php"); 
相关问题