天天看點

phpcms v9和discuz X3.1實作同步登陸退出論壇(已實作)

網絡上文章很多,按步驟配置好了之後phpcms可以同步登入dz,但是dz登入後狀态卻無法同步到phpcms,網絡上找了很多資料都大同小異,頭大。隻能自己調試了,廢話不多說了。

      以下網絡上抄的安裝步驟,留着自己用,有安裝過的可跳過。

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

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

     1、管理者登入 Discuz! X3.1 管理中心,進入“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,在”第三步“中将用到它。)

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

第三步:配置 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 資料庫表字首:`discuz`.pre_ucenter_     (必填,視實際情況而定。如果此項填寫錯誤,将導緻 phpcms 無法注冊新會員!)

    Ucenter 資料庫字元集:UTF-8      (必選,視實際情況而定)

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

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

   3、送出。

 第四步:檢視通信狀态。

檢視在 UCenter 中建立的 phpsso 應用與 UCenter 通信是否成功。

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

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

第五步:備份 ./phpsso 。将 Discuz! X3.1 的 uc_client 複制到 phpsso_server/api/ 下,覆寫原來的 uc_client 。

 第五步我我試了下,如果覆寫的話,phpcms都無法同步登入到dz,是以如果可以正常同步就忽略了。

第六步:修改 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_simple.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;

以上配置内容晚上基本上可以實作phpcms與dz的同步了。dz同步還不一定。需要以下配置:

找到dz檔案夾下的uc_client\data\cache\apps.php。找到該檔案,看看是否隻有一個

$_CACHE['apps'] = array (

  1 => 

  array (此處省略...),

  需要在此處添加我們剛剛建立的内容:

  2 => 

  array (

    'appid' => '2',

    'type' => 'phpcms主站',

    'name' => 'phpcms主站',

    'url' => 'http://127.0.0.1:82/phpcms/phpsso_server',

    'ip' => '',

    'viewprourl' => '',

    'apifilename' => 'uc.php',

    'charset' => '',

    'dbcharset' => '',

    'synlogin' => '1',

    'recvnote' => '1',

    'extra' => false,

    'tagtemplates' => '',

    'allowips' => '',

  ),

完成以上代碼應該就可以完美同步了。

來源:http://hycaiwanfu.blog.163.com/blog/static/453764201412710137952/