完美整合phpcms v9和discuz X3.1實現(xiàn)同步登陸退出論壇免激活
來源:易賢網(wǎng) 閱讀:1041 次 日期:2014-08-19 10:31:30
溫馨提示:易賢網(wǎng)小編為您整理了“完美整合phpcms v9和discuz X3.1實現(xiàn)同步登陸退出論壇免激活”,方便廣大網(wǎng)友查閱!

UCenter 作服務(wù)端;phpsso 與 Discuz! 分別作 UCenter 的客戶端應(yīng)用;phpsso 與 Discuz! 通過 UCenter 發(fā)生交互經(jīng)過測試仍然有問題,phpcms登陸,論壇可以實現(xiàn)同步登陸,但論壇登陸phpcms無法同步登陸。但總體來說也能使用了。如果有更好的方法歡迎補充。

整合原理:

UCenter 作服務(wù)端;phpsso 與 Discuz! 分別作 UCenter 的客戶端應(yīng)用;phpsso 與 Discuz! 通過 UCenter 發(fā)生交互。

phpcms 通過 phpsso 與 Discuz! 發(fā)生交互。

第一步:安裝 phpcms V9 。安裝 Discuz! X3.0 (同時安裝 UCenter)。

第二步:在 UCenter 中添加“phpsso 應(yīng)用”。

1、管理員登錄 Discuz! X3.0 管理中心,進(jìn)入“UCenter”,點擊“應(yīng)用管理”。

2、點擊“添加新應(yīng)用”按鈕,選擇安裝方式為”自定義安裝“。在展開的”添加新應(yīng)用“參數(shù)配置表中,各項參數(shù)配置如下:

應(yīng)用名稱:phpsso

應(yīng)用的主 URL:http://localhost/phpcms/phpsso_server (必填, phpcms 安裝路徑,視實際情況而定,最后不要帶斜線)

應(yīng)用 IP:(選填,正常情況下留空即可。如果由于域名解析問題導(dǎo)致 UCenter 與該應(yīng)用通信失敗,請嘗試設(shè)置為該應(yīng)用所在服務(wù)器的 IP 地址。)

通信密鑰:(必填,phpcms 的通信密鑰必須與此設(shè)置保持一致,否則 phpsso 將無法與 UCenter 正常通信。)

應(yīng)用類型:其它(必選)

應(yīng)用的物理路徑:(選填,默認(rèn)留空)

查看個人資料頁面地址:(選填,URL中域名后面的部分,如:/space.php?uid=%s 這里的 %s 代表uid)

應(yīng)用接口文件名稱:(選填,默認(rèn)為uc.php)

標(biāo)簽單條顯示模板:(選填,默認(rèn)留空)

標(biāo)簽?zāi)0鍢?biāo)記說明:(選填,默認(rèn)留空)

是否開啟同步登錄:是(可選,開啟同步登錄后,當(dāng)用戶在登錄 Discuz! 時,同時也會登錄 phpcms 。)

是否接受通知:否(可選)

3、提交后,將生成新的應(yīng)用ID。(記住這個應(yīng)用ID,在”第三步“中將用到它。)

4、進(jìn)入后臺“站長”,“UCenter 設(shè)置”選項。"是否允許直接激活"一項,選擇“是”。

第三步:配置 phpsso 。

1、管理員登錄 phpcms V9 后臺管理中心,進(jìn)入“phpsso”,點擊“系統(tǒng)設(shè)置”。

2、在“系統(tǒng)設(shè)置”下的“UCenter配置”一欄中,各項參數(shù)配置如下:

是否啟用:是

Ucenter api 地址:http://localhost/discuz/uc_server (必填,藍(lán)色字體部分為 Discuz! 安裝路徑,視實際情況而定,最后不要帶斜線)

Ucenter api IP:(選填,一般不用填寫,遇到無法同步時,請?zhí)顚?UCenter 主機的IP地址)

Ucenter 數(shù)據(jù)庫主機名:localhost (必填,視實際情況而定)

Ucenter 數(shù)據(jù)庫用戶名:root (必填,視實際情況而定)

Ucenter 數(shù)據(jù)庫密碼:root (視實際情況而定)

Ucenter 數(shù)據(jù)庫名:discuz (必填,視實際情況而定)

Ucenter 數(shù)據(jù)庫表前綴:`discuz`.pre_ucenter_ (必填,視實際情況而定。如果此項填寫錯誤,將導(dǎo)致 phpcms 無法注冊新會員?。?/P>

Ucenter 數(shù)據(jù)庫字符集:UTF-8 (必選,視實際情況而定)

應(yīng)用id(APP ID):(必填,該值來在“第二步”中 UCenter 創(chuàng)建的 phpsso 應(yīng)用時自動。)

Ucenter 通信密鑰:(必填,一定確保該值與在“第二步”中 UCenter 創(chuàng)建的 phpsso 應(yīng)用密鑰相同。)

3、提交。

第四步:查看通信狀態(tài)。

查看在 UCenter 中創(chuàng)建的 phpsso 應(yīng)用與 UCenter 通信是否成功。

如果通信成功,則進(jìn)行下一步。

如果通信失敗,請檢查“第二步”與“第三步”中的各項參數(shù)配置是否正確。

第五步:備份 ./phpsso 。將 Discuz! X3 的 uc_client 復(fù)制到 phpsso_server/api/ 下,覆蓋原來的 uc_client 。

第六步:修改 Discuz! 會員登錄相關(guān)

1、修改 templatedefaultmemberlogin.htm 第 36 行,刪除

onsubmit="{if $this->setting['pwdsafety']}pwmd5('password3_$loginhash');{/if}pwdclear = 1;ajaxpost('loginform_$loginhash', 'returnmessage_$loginhash', 'returnmessage_$loginhash', 'onerror');return false;"

2、修改 templatedefaultmemberlogin_s imple.htm 第 3 行,刪除

onsubmit="{if $_G['setting']['pwdsafety']}pwmd5('ls_password');{/if}return lsSubmit();"

3、修改 /source/function/function_message.php 第 78 行,查找

$param['header'] = true;

替換為:

$param['header'] = false;

常見問題解答:

1、整合完成后,在 phpcms 注冊、登錄均“失敗”怎么辦?

答:這可能是由于無法連接到 UCenter 的原因。可以嘗試修改文件

phpsso_server/api/uc_client/model/base.php

將第 74 行的 $this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, '', UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);

復(fù)制代碼替換為: $this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);

復(fù)制代碼2、為什么不使用官方自帶的 UCenter 客戶端?

答:官方自帶的 UCenter 客戶端版本為 1.5.1 Release 20100501 ,而 Discuz! X3.0 使用的版本為 1.6.0 。版本不一致,無法整合成功。

3、整合成功后,能達(dá)到怎樣的效果?

答:實現(xiàn) phpcms 與 Discuz! 會員的雙向同步注冊、登錄、退出等。

4、第一次在 phpcms 注冊的會員必須在 Discuz! 登錄一次,下次才會同步登錄。這正常嗎?

答:正常。因為 phpsso 作為 UCenter 的第三方應(yīng)用,是需要在 Discuz! 登錄激活的。

如果您嫌在 Discuz! 激活麻煩,可以與我聯(lián)系,我們將提供商業(yè)服務(wù),幫您解決這個問題。

5、會員在 phpcms 登錄后,沒有同步登錄到 Discuz! 怎么辦?

答:這很可能是由于 phpsso 的“UCenter配置”有誤引起的,請仔細(xì)檢查各項參數(shù)設(shè)置。

6、會員在 Discuz! 登錄后,沒有同步登錄到 phpcms 怎么辦?

答:這很可能是由于 UCenter 的 phpsso 應(yīng)用配置有誤引起的,請仔細(xì)檢查各項參數(shù)設(shè)置。

分析其主要原因是phpsso與ucenter通信成功后,XXX_ucenter_member表中的用戶已經(jīng)同步成功但是在 XXX_common_member中并沒有此用戶,所以只要在xxx_common_member中插入此用戶就可以了,所以修改discuz/api /uc.php下找到function synlogin($get, $post)整段,修改為下面的內(nèi)容:

function synlogin($get, $post) {

global $_G;

if(!API_SYNLOGIN) {

return API_RETURN_FORBIDDEN;

}

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

$cookietime = 31536000;

$uid = intval($get['uid']);

$query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");

if ($member = DB::fetch($query))

{

dsetcookie('auth', authcode("$member[password]t$member[uid]", 'ENCODE'), $cookietime);

}else

{

$username = $get['username'];

$query = DB::query("SELECT uid, username, password, email FROM ".DB::table('ucenter_members')." WHERE username='$username'");

$member = DB::fetch($query);

$password = $member['password'];

$email = $member['email'];

$ip = $_SERVER['REMOTE_ADDR'];

$time = time();

$userdata = array(

'uid'=>$uid,

'username'=>$username,

'password'=>$password,

'email'=>$email,

'adminid'=>0,

'groupid'=>10,

'regdate'=>$time,

'credits'=>0,

'timeoffset'=>9999

);

DB::insert('common_member', $userdata);

$status_data = array(

'uid' => $uid,

'regip' => $ip,

'lastip' => $ip,

'lastvisit' => $time,

'lastactivity' => $time,

'lastpost' => 0,

'lastsendmail' => 0

);

DB::insert('common_member_status', $status_data);

DB::insert('common_member_profile', array('uid' => $uid));

DB::insert('common_member_field_forum', array('uid' => $uid));

DB::insert('common_member_field_home', array('uid' => $uid));

DB::insert('common_member_count', array('uid' => $uid));

DB::query('UPDATE '.DB::table('common_setting')." SET svalue='$username' WHERE skey='lastmember'");

$query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'");

if ($member = DB::fetch($query))

{

dsetcookie('auth', authcode("$member[password]t$member[uid]", 'ENCODE'), $cookietime);

}

}

}

更多信息請查看IT技術(shù)專欄

更多信息請查看CMS教程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀CMS教程

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)