一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

DEDECMS|帝國CMS|Discuz|PHPCMS|Wordpress|ZBLOG|ECSHOP|蘋果CMS|極致CMS|CMS系統|

服務器之家 - 建站程序 - PHPCMS - 完美整合phpcms v9和discuz X3.1實現同步登陸退出論壇免激活

完美整合phpcms v9和discuz X3.1實現同步登陸退出論壇免激活

2019-10-13 15:23phpcms教程網 PHPCMS

UCenter 作服務端;phpsso 與 Discuz! 分別作 UCenter 的客戶端應用;phpsso 與 Discuz! 通過 UCenter 發生交互

經過測試仍然有問題,phpcms登陸,論壇可以實現同步登陸,但論壇登陸phpcms無法同步登陸。但總體來說也能使用了。如果有更好的方法歡迎補充。

整合原理:

UCenter 作服務端;phpsso 與 Discuz! 分別作 UCenter 的客戶端應用;phpsso 與 Discuz! 通過 UCenter 發生交互。

phpcms 通過 phpsso 與 Discuz! 發生交互。

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

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

1、管理員登錄 Discuz! X3.0 管理中心,進入“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 的 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="{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);

復制代碼替換為: $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! X3.0 使用的版本為 1.6.0 。版本不一致,無法整合成功。

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

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

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

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

如果您嫌在 Discuz! 激活麻煩,可以與我聯系,我們將提供商業服務,幫您解決這個問題。

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

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

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

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

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

  1. function synlogin($get, $post) { 
  2.         global $_G; 
  3.  
  4.         if(!API_SYNLOGIN) { 
  5.             return API_RETURN_FORBIDDEN; 
  6.         } 
  7.  
  8.         header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); 
  9.  
  10.         $cookietime = 31536000; 
  11.         $uid = intval($get['uid']); 
  12.         $query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'"); 
  13.         if ($member = DB::fetch($query)) 
  14.         { 
  15.             dsetcookie('auth', authcode("$member[password]\t$member[uid]"'ENCODE'), $cookietime); 
  16.         }else 
  17.         { 
  18.             $username = $get['username']; 
  19.             $query = DB::query("SELECT uid, username, password, email FROM ".DB::table('ucenter_members')." WHERE username='$username'"); 
  20.             $member = DB::fetch($query); 
  21.             $password = $member['password']; 
  22.             $email = $member['email']; 
  23.             $ip = $_SERVER['REMOTE_ADDR']; 
  24.             $time = time(); 
  25.             $userdata = array( 
  26.                 'uid'=>$uid, 
  27.                 'username'=>$username, 
  28.                 'password'=>$password, 
  29.                 'email'=>$email, 
  30.                 'adminid'=>0, 
  31.                 'groupid'=>10, 
  32.                 'regdate'=>$time, 
  33.                 'credits'=>0, 
  34.                 'timeoffset'=>9999 
  35.             ); 
  36.             DB::insert('common_member', $userdata); 
  37.  
  38.             $status_data = array( 
  39.                 'uid' => $uid, 
  40.                 'regip' => $ip, 
  41.                 'lastip' => $ip, 
  42.                 'lastvisit' => $time, 
  43.                 'lastactivity' => $time, 
  44.                 'lastpost' => 0, 
  45.                 'lastsendmail' => 0 
  46.             ); 
  47.             DB::insert('common_member_status', $status_data); 
  48.             DB::insert('common_member_profile', array('uid' => $uid)); 
  49.             DB::insert('common_member_field_forum', array('uid' => $uid)); 
  50.             DB::insert('common_member_field_home', array('uid' => $uid)); 
  51.             DB::insert('common_member_count', array('uid' => $uid)); 
  52.             DB::query('UPDATE '.DB::table('common_setting')." SET svalue='$username' WHERE skey='lastmember'"); 
  53.             $query = DB::query("SELECT uid, username, password FROM ".DB::table('common_member')." WHERE uid='$uid'"); 
  54.             if ($member = DB::fetch($query)) 
  55.             { 
  56.                 dsetcookie('auth', authcode("$member[password]\t$member[uid]"'ENCODE'), $cookietime); 
  57.             } 
  58.         } 
  59.     } 

延伸 · 閱讀

精彩推薦
  • PHPCMSphpcms轉移到虛擬空間的詳細步驟

    phpcms轉移到虛擬空間的詳細步驟

    本文向大家介紹phpcms從本地轉移到虛擬空間的步驟,轉移過程需要改動一部分文件,這里提供如何改動這些文件,以保證你可以順利轉移PHPCMS ...

    phpcms教程網4232019-10-13
  • PHPCMSphpcms v9去除盛大連接 關閉盛大通行證的修改方法

    phpcms v9去除盛大連接 關閉盛大通行證的修改方法

    phpcms v9默認開啟了盛大連接,直接使用盛大通告證登錄網站,但是盛大通告證的覆蓋面有限,比不上QQ或者支付寶,甚至不如人人網、豆瓣之類,于是有朋...

    phpcms教程網5562019-10-13
  • PHPCMSphpcms怎么上傳歌曲文件

    phpcms怎么上傳歌曲文件

    phpcms上傳歌曲文件的方法:首先依次打開“設置-站點管理-修改”;然后在附件配置的“允許上傳附件類型”中添加自己需要的類型;接著打開“添加模型...

    未知1522023-05-07
  • PHPCMS數據庫導入成功,phpcms打不開

    數據庫導入成功,phpcms打不開

    問:,數據庫導入成功,phpcms打不開 答:您好,查看此域名是解析到 云主機 上的,報錯來看應該是您導入的數據庫不完整,還差session的表,請您核實 若需...

    未知1822023-05-07
  • PHPCMSphpcms的欄目緩存無限級羅列展示處理代碼(親測)

    phpcms的欄目緩存無限級羅列展示處理代碼(親測)

    本文為大家詳細介紹下phpcms的欄目緩存無限級羅列展示是怎么實現的,粗測試了一下,效果還不錯,有需求的朋友可以參考下哈,希望對大家有所幫助 ...

    phpcms教程網8642019-10-11
  • PHPCMSphpcms V9實現QQ登陸OAuth2.0提供下載

    phpcms V9實現QQ登陸OAuth2.0提供下載

    phpcmsV9使用的QQ登陸依然是OAuth1.0,但現在騰訊已經不審核使用OAuth1.0的網站了。這對于使用pc的站長來講是一個無比巨大的坑。經過對phpcms論壇的一位同學做...

    phpcms教程網3402019-10-11
  • PHPCMSphpcms常見問題解答

    phpcms常見問題解答

    1.為什么phpcms首頁幻燈片怎么顯示不出來? 答:需要設置文章的 標題圖片 如果設置標題圖片,則可以在首頁以及欄目頁以圖片方式鏈接到文章。 2.自定義...

    phpcms教程網2712019-10-07
  • PHPCMS如何設置PhpCms廣告模塊管理 PhpCms廣告模塊管理圖文教程

    如何設置PhpCms廣告模塊管理 PhpCms廣告模塊管理圖文教程

    PhpCms廣告模塊管理圖文教程,下面給大家總結一下 ...

    PHPCMS教程網3782019-10-14
主站蜘蛛池模板: 欧美日韩亚洲国内综合网俺 | 教师波多野结衣在线播放 | 婷婷九月| 校服下的白嫩小乳尖h1v1 | 91精品啪在线观看国产老湿机 | 日比免费视频 | 日本高清免费不卡在线播放 | 国产午夜视频在线观看网站 | 亚洲男人的天堂网站 | 大吊操| 欧美成年黄网站色高清视频 | 19+韩国女主播激情vip视频在线 | 精品国产视频 | 欧美一区二区三区不卡视频 | 午夜在线播放免费人成无 | 大陆日韩欧美 | 男生同性视频twink在线 | 色老板视频在线 | 国产成人精品免费视频大全五级 | 欧美伦乱 | 亚洲AV国产国产久青草 | 国产精品视频视频久久 | 好男人资源在线观看免费的 | 风间由美在线 | 国产日韩欧美 | 国产裸露片段精华合集链接 | 色婷婷综合缴情综六月 | 99久在线 | 男女男精品视频网站 | 天美蜜桃精东乌鸦传媒 | 国产久视频 | 草莓视频旧版 | 国产一二三区视频 | 免费黄色片在线观看 | 国产一级黄色网 | 黑帮少爷爱上我第8集在线观看 | 亚洲精品第一国产综合高清 | 天天色天天色天天色 | 亚洲一区二区福利视频 | 久久午夜夜伦痒痒想咳嗽P 久久无码AV亚洲精品色午夜麻豆 | 午夜家庭影院 |