2016-05-18 82 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"); 
相關問題