phpcms V9 整合 Discuz! X2

【整合原理】我們把phpsso作爲uc的一個應用來處理。UCenter 作服務端;phpsso 與 Discuz! 分別作 UCenter 的客戶端應用;phpsso 與 Discuz! 通過 UCenter 發生交互。phpcms 通過 phpsso 與 Discuz! 發生交互。

從 phpcms 註冊後,同步註冊到 UCenter (這個過程需要在後臺開啓uc,並且保證通信成功才行),這是因爲 phpcms 實際上是與 UCenter 進行通信。用該帳號從 Discuz! 登錄,實際上是從 UCenter 登錄。而在 Discuz! 中,是沒有這個帳號的,所以要把 UCenter 中的這個帳號信息註冊到 Discuz! 中(即所謂的“激活”)。這是康盛創想設計的 UCenter 與 Discuz! 帳號轉移機制,我們是無法改變的(除非把 Discuz! 從 UCenter 中分離!)反之,從 Discuz! 註冊後,同步註冊到 phpsso 。但 phpsso 同時註冊到 phpcms ,所以就不需要“激活”了

【安裝步驟】

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

第二步:在 UCenter 中添加“phpsso 應用”。

1、管理員登錄 Discuz! X2 管理中心,進入“UCenter”,點擊“應用管理”。

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

    應用名稱:phpsso

    應用類型:其它(必選

    應用的主 URLhttp//localhost/phpcms/phpsso_server   必填, phpcms 安裝路徑,視實際情況而定,最後不要帶斜線)

    應用 IP:(選填,正常情況下留空即可。如果由於域名解析問題導致 UCenter 與該應用通信失敗,請嘗試設置爲該應用所在服務器的 IP 地址。)

    通信密鑰:(必填phpcms 的通信密鑰必須與此設置保持一致,否則 phpsso 將無法與 UCenter 正常通信。這裏的密鑰最好是自動生成)

        應用的物理路徑:(選填,默認留空)

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

    應用接口文件名稱:(選填,默認爲uc.php

    標籤單條顯示模板:(選填,默認留空)

    標籤模板標記說明:(選填,默認留空)

    是否開啓同步登錄:是(可選,開啓同步登錄後,當用戶在登錄 Discuz! 時,同時也會登錄 phpcms 。)

    是否接受通知:否(可選

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

4、進入後臺“站長”,“UCenter 設置”選項。"是否允許直接激活"一項,選擇“是”。

第三步:配置 phpsso 

1、管理員登錄 phpcms V9 後臺管理中心,進入“phpsso”,點擊“系統設置”。

2、在“系統設置”下的“UCenter配置”一欄中,各項參數配置如下:

是否啓用:是

    Ucenter api 地址:http//localhost/discuz/uc_server     必填,視實際情況而定,最後不要帶斜線)

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

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

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

    Ucenter 數據庫密碼:root    必填,視實際情況而定)

    Ucenter 數據庫名:ultrax     必填,視實際情況而定)

    Ucenter 數據庫表前綴:ultrax_ucenter_     必填,視實際情況而定。如果此項填寫錯誤,將導致 phpcms 無法註冊新會員!)

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

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

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

3、提交。

第四步:查看通信狀態。

查看在 UCenter 中創建的 phpsso 應用與 UCenter 通信是否成功。

如果通信成功,則進行下一步。

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

第五步:備份 ./phpsso 。將 Discuz! X2 的 uc_client 複製到 phpsso_server/api/ 下,覆蓋原來的 uc_client 

第六步:修改 Discuz! 會員登錄相關

1、修改 template\default\member\login.htm 第 36 行,刪除

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

2、修改 template\default\member\login_s imple.htm 第 行,刪除

onsubmit="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);

複製代碼替換爲: $this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);

    方法二:整合了uc1.6之後

phpsso中的系統設置中將ucenter配置裏面的Ucenter數據庫表前綴改爲 `數據庫名稱`.uc_ ,例:(`ultrax`.pre_ucenter_)請注意,這個``不是英文單引號,是1鍵前面的這個鍵。

注意:這個數據庫名稱其實是你的uc數據庫名稱

3PHPCMS v9.1.7整合discuz X2 的解決辦法

第一步:確定你的PHPCMSPHPSSO版本爲最新版v9.1.7(20110909)。注:截至發此文章時間最新版爲該版本。

第二步:使用新的uc_client文件,打開phpsso_serverapi 目錄修改原uc_client目錄名稱爲uc_client.1.5.1,然後將下面文件解壓後覆蓋到該目錄下。

                   uc_client.rar (41.12 KB)

第三步:使用下面文件覆蓋phpsso_serverphpcmslibsfunctionsglobal.func.php 文件。注意:是phpsso_server中的global.func.php,不是cms中的!

                   global.func.rar (7.75KB)

第四步:登錄phpsso後臺,系統設置 > uc設置 ,配置相應的整合信息,如下圖。注意:在前綴前增加數據庫名稱  

2、會員在 phpcms 登錄後,沒有同步登錄到 Discuz! 怎麼辦?答:這很可能是由於 phpsso 的“UCenter配置”有誤引起的,請仔細檢查各項參數設置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章