Phpcms v9與DZ X2整合並實現雙向同步登錄退出方法

在phpcms v9模版製作常用代碼收集之後,繼續分享Phpcms建站的技巧,下面來具體講解Phpcms v9與Discuz! X2整合並實現雙向同步登錄退出解決的方案方法,具體說明分享如下:

第一步:安裝 Phpcms V9.0.8 Release 20110413 版 。全新安裝 Discuz! X2 RC 版 20110505,帶uc的綜合版.

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

第三步.修改dzx相關文件 。

........

最重要的是清空瀏覽器cookie 並雙方都更新緩存.。

首先把原理大致的描述一下,我們把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.0.8 Release 20110413 版 。全新安裝 Discuz! X1.5 或全新安裝 Discuz! X2 RC 版 20110505發佈(同時安裝 UCenter)。

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

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

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

應用類型:其它

應用名稱:phpsso

應用的主 URL:http://localhost/phpcms/phpsso_server (必填,最後不要帶斜線)

應用 IP:(選填。)

通信密鑰:(自動生成.並 把這個cookie複製下來.粘貼到phpsso中.否則 phpsso 將無法與 UCenter 正常通信。)

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

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

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

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

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

是否開啟同步登錄:是

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

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

第三步:配置 phpsso 。

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

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


是否啟用:是Ucenter api 地址:http://localhost/ucenter (必填,最後不要帶斜線)Ucenter api IP:(選填,一般不用填寫,遇到無法同步時,請填寫 UCenter 主機的IP地址)Ucenter 數據庫主機名:localhost (必填,視實際情況而定)Ucenter 數據庫用戶名:root (必填,視實際情況而定)Ucenter 數據庫密碼:root (視實際情況而定)Ucenter 數據庫名:discuz (必填,視實際情況而定)Ucenter 數據庫表前綴:pre_ucenter_ (必填,視實際情況而定。如果此項填寫錯誤,將導致 phpcms 無法註冊新會員!)Ucenter 數據庫字符集:UTF-8 (必選,視實際情況而定)應用id(APP ID):(必填,該值來在“第二步”中 UCenter 創建的 phpsso 應用時自動生成。)Ucenter 通信密鑰:(必填,直接去uc後臺複製就行了.一定確保該值與在“第二步”中 UCenter 創建的 phpsso 應用密鑰相同。)

3、提交。 第四步:查看通信狀態。 查看在 UCenter 中創建的 phpsso 應用與 UCenter 通信是否成功。 如果通信成功,則進行下一步。 如果通信失敗,請檢查“第二步”與“第三步”中的各項參數配置是否正確。 第五步:修改 Discuz! x2 會員登錄相關。

第六步.清空瀏覽器cookie(可以用不常用的瀏覽器測試,比如你常用ie瀏覽器,則可以用火狐或谷歌瀏覽器測試.否則,清空cookie會影響日常使用.) 常見問題解答: 1、在phpsso的早期版本中, (Phpcms V9.0.8 Release 20110413 這個版本已不存在這個問題.請不用擔心,下面的步驟也無需再做了. )整合 UCenter 後,Discuz! 註冊會員在 phpcms 中為什麼不顯示暱稱? 答:這是因為 Discuz! 只有“用戶名”,沒有“暱稱”的概念。要解決這個問題,可以把 Discuz! 的“用戶名”做為 phpcms 的“暱稱”來使用。 打開 api/phpsso.php ,在第 41 行(代碼為:$userinfo['password'] = isset($arr['password']) ? $arr['password'] : exit(’0′);)的下面添加如下語句: $userinfo['nickname'] = isset($arr['username']) ? $arr['username'] : exit(’0′); 這樣修改以後,在 Discuz! 新註冊的會員,在 phpcms 中就可以顯示暱稱了。 但修改以前的會員仍然是沒有“暱稱”的。這就需要在數據庫中修改了:

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

ajaxpost(‘loginform_$loginhash’, ‘returnmessage_$loginhash’, ‘returnmessage_$loginhash’, ‘onerror’);return false;

2、修改 template\\default\\member\\login_s imple.htm 第 2 行,刪除
onsubmit=”return lsSubmit()”

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

$param['header'] = true;
替換為:
$param['header'] = false;
\t\t
(如果你用的是dzx1.5 上面第3步,則應該修改 /source/function/function_core.php 第 1458 行,查找
$param['header'] = true;
替換為:
$param['header'] = false; /<code>

CMSYOU提示你:暫時告一段落了,返回列表更精彩,CMS模版定製專家!


分享到:


相關文章: