首頁  >  文章  >  後端開發  >  PHP實現整合DISCUZ用戶的方法

PHP實現整合DISCUZ用戶的方法

墨辰丷
墨辰丷原創
2018-06-07 17:24:582257瀏覽

本篇主要介紹PHP實作整合DISCUZ使用者的方法,有興趣的朋友參考下,希望對大家有幫助。

前幾天遇到一個需要將兩個discuz合併的項目,一個用戶級別在12萬左右,一個是1萬8.不用說肯定是扔了1萬8的,留下12萬的。開始覺得不好處理,數據表都是關聯,新註冊一個用戶,有8個表增加記錄了,還沒看有沒有其他表有修改記錄的可能性。當時覺得一時半會兒也理不清那些表,就搜索了一下,搜到了discuz tool.但是只能導10萬以內的,於是就只能自己嘗試了,後來考慮,我直接在關鍵表插入一條記錄如何,其他表在用戶操作的過程中沒準就自動補齊的相關數據了,於是就試著導出原來的1萬8用戶,然後寫了個PHP腳本直接將這1萬8用戶寫入的uncenter的memeber表裡。測試了一下還OK。遺憾的是用戶積分啥的都沒過去,只是保留了用戶的用戶名和密碼。

關鍵步驟:

1.匯出打算不要的那個系統的uncenter member資料庫成sql檔。

2.運行腳本。

聲明:本腳本只提供思路,請使用前提前備份好數據,如數據遺失與作者無關。 (程式碼簡單,勿噴)

set_time_limit(0); 
$link = mysql_connect('localhost', 'ngjc', 'ohFt6yhHYvt5') 
 or die('Could not connect: ' . mysql_error()); 
echo 'Connected successfully'; 
mysql_select_db('ngjc') or die('Could not select database'); 
require "sql.php";//此处换成导出的sql文件 
$arrayerr=array(); 
$oknum=0; 
$errnum=0; 
mysql_query("SET NAMES utf8"); 
foreach($sqlarr as $sql) 
{ 
 if(!mysql_query($sql)) 
 { 
  $arrayerr[]=$sql;$errnum++; 
 } 
 else 
 { 
  $oknum++; 
 } 
} 
echo "<pre class="brush:php;toolbar:false">OK:$oknum <br>errornum:$errnum <br> error:<br>"; 
print_r($arrayerr); 
mysql_close($link);

我們再來看下使用UC整合的方法

這兩天一直在2個discuz的ucenter和會員系統;經過我不懈的努力;終於整合完成;整合過後實現功能如下;

兩個discuz系統共用同一個ucenter;    //實作方法:

兩個discuz系統共用同一個會員系統;//解決方法在後面;

先整合ucenter;

#先完整安裝一個discuz系統;進入ucenter;新增應用:

點選安裝:一直下一步到下面

如果點選出現您必須解決以上問題,安裝才可以繼續
請回傳輸入UCenter 的IP位址:如果不意外進入下一步

ucenter整合完畢;可以實現同時登陸;同時退出;只是第一次需要啟動;

開啟第二分系統config/下的config_global.php;

$_config['db']['1']['tablepre'] = chuzi_';下新增$_config['db']['2']['tablepre'] = it_

第二個分系統開啟source\class\db檔案下的db_driver_mysql.php ;

在第34行$this->tablepre = $config['1']['tablepre'];下面加入        $this->tableprechu = $ config['2']['tablepre'];
第112行  return $this->tablepre.$tablename;修改成下面

if(preg_match("/^common_member(.*)/i",$tablename)|| preg_match("/^home(.*)/i",$tablename) || in_array($tablename, array(&#39;common_credit_rule_log&#39;)))
    {
      return $this->tableprechu .$tablename; //tableprechu与上面修改对应就行;
    }else{
    return $this->tablepre.$tablename;
    }

總結:以上就是本篇的全部內容,希望對大家的學習有所幫助。

相關推薦:

thinkPHP實作多表查詢及分頁功能的方法

PHP實作取得上月、本月、近15天、近30天的方法

PHP使用preg_split和explode實作分割textarea存放內容的方法

以上是PHP實現整合DISCUZ用戶的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn