phpcms V9 整合 Discuz! X2.5 ucenter通信教程--同步註冊和登錄

整合原理:涉及UCenter 客戶端uc_client;phpsso 與 Discuz! 分別作 UCenter 的客戶端應用;phpsso 與 Discuz! 通過 UCenter 來通信,最終實現phpcms 通過 phpsso 與 ucenter通信完成同步註冊和登錄。

第一步:安裝程序

安裝 phpcms V9 和安裝 Discuz! X2.5 (同時安裝 UCenter)。安裝完成後需要保證phpcms和phpsso的通信正常。

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

1、管理員登錄 Discuz! X2.5 管理中心,進入“UCenter”,點擊“應用管理”。
2、點擊“添加新應用”按鈕,選擇安裝方式爲”自定義安裝“。在展開的”添加新應用“參數配置表中,各項參數配置如下:

  應用名稱:phpsso
  應用的主 URL:http://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,在”第三步“中將用到它。)

第三步:配置 phpsso應用


1、管理員登錄 phpcms V9 後臺管理中心,進入“phpsso”,點擊“系統設置”。
2、在“系統設置”下的“UCenter配置”一欄中,各項參數配置如下:
  
  是否啓用:是
  Ucenter api 地址:http://localhost/discuz/uc_server   (必填,藍色字體部分爲 Discuz! 安裝路徑,視實際情況而定,最後不要帶斜線)
  Ucenter api IP:(選填,一般不用填寫,遇到無法同步時,請填寫 UCenter 主機的IP地址)
  Ucenter 數據庫主機名:localhost   (必填,視實際情況而定)
  Ucenter 數據庫用戶名:root   (必填,視實際情況而定)
  Ucenter 數據庫密碼:root   (視實際情況而定)
  Ucenter 數據庫名:discuz   (必填,視實際情況而定)
  Ucenter 數據庫表前綴:dz_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 第 3 行,刪除
onsubmit="return lsSubmit()"

3、修改 /source/function/function_message.php 第 78 行,查找
$param['header'] = true;
替換爲:
$param['header'] = false;

phpcms V9 整合 Discuz! X2.5 ucenter通信常見問題解答:

1、整合完成後,在 phpcms 註冊、登錄均“失敗”怎麼辦?

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

phpsso_server/api/uc_client/model/base.php
將第 74 行的
  1. $this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, '', UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);
複製代碼
替換爲:
  1. $this->db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCHARSET, UC_DBCONNECT, UC_DBTABLEPRE);
複製代碼
2、爲什麼不使用官方自帶的 UCenter 客戶端?

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

3、整合成功後,能達到怎樣的效果?

答:實現 phpcms 與 Discuz! 會員的雙向同步註冊、登錄、退出等。

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

答:正常。因爲 phpsso 作爲 UCenter 的第三方應用,是需要在 Discuz! 登錄激活的。

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

答:這很可能是由於 phpsso 的“UCenter配置”有誤引起的,請仔細檢查各項參數設置。

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

答:這很可能是由於 UCenter 的 phpsso 應用配置有誤引起的,請仔細檢查各項參數設置。



ps:可能在本地測試移交到網上後就不能聯通了,這是由於數據庫配置的問題。在phpsso-》系統設置-》uncenter配置中重新填寫數據庫信息,完了之後點擊左側更新緩存-》點擊更新應用緩存。完成配置。

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