亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

項目整合Discuz UCenter

2019-11-15 01:41:45
字體:
來源:轉載
供稿:網友
項目整合Discuz UCenter

市場就是力量,discuz是國內人氣最高,使用最廣泛的論壇系統,發展到今天它已經整合了論壇、門戶、博客、CMS等版塊,內容豐富,深受用戶的喜愛,一直以來很多用戶用它來整合自己的應用。由于discuz版塊眾多,系統相對封裝,源代碼缺少注釋,api資料不夠豐富,官方對discuz用戶的咨詢也并非賣力,而網上資料不是版本陳舊就是魚龍混雜。對于想整合discuz論壇的朋友存在一定的難度。因此,如果你想美好整合discuz的話,不妨耐心看完以下提示。

一、準備工作

1、uc api說明書,通讀全文。參考http://faq.comsenz.com/library/UCenter/introduction/introduction_list.htm(官方),了解同步登陸機制

2、uc 后臺添加應用說明。參考http://faq.comsenz.com/viewnews-506(官方) http://wenku.baidu.com/view/3790fdd7195f312b3169a588.html(草根)

3、uc client客戶端必要代碼,這里下載

4、如果是x3后面的版本,請先更改bug,參見http://www.discuz.net/thread-3505581-1-1.html

解決方案如下: /source/class/discuz的discuz_application.php 查找

 

<?php
        PRivate function _xss_check() {static $check = array('"', '>', '<', '/'', '(', ')', 'CONTENT-TRANSFER-ENCODING');if(isset($_GET['formhash']) && $_GET['formhash'] !== formhash()) {system_error('request_tainting');}if($_SERVER['REQUEST_METHOD'] == 'GET' ) {$temp = $_SERVER['REQUEST_URI'];} elseif(empty ($_GET['formhash'])) {$temp = $_SERVER['REQUEST_URI'].file_get_contents('php://input');} else {$temp = '';}if(!empty($temp)) {$temp = strtoupper(urldecode(urldecode($temp)));foreach ($check as $str) {if(strpos($temp, $str) !== false) {system_error('request_tainting');}}}return true;}

 

二、示例

我們學習一門技術時,看看它的技術說明就足夠了,但discuz遠非如此。discuz不是zend frame、dedecms、ci這些白開水的東西,沒有一點鉆研精神和愛折騰的氣質是無法理解它深奧的內涵,更不用說駕馭它。要達到成功,我們需要有詳盡的說明文字,另外還需要配備必要的圖片,雖然有了這些你也未必能夠成功。

先看一下我的項目結構

1

tanahk 是真正的項目地址,x3.2是我的discuz論壇,打開它

2

可以看到這個discuz x3.2已經整合了Ucenter,其中uc_server是uc服務器,uc_client是客戶端,uc_client這個文件夾在discuz x、discuz home、discuz xspace等產品中都是已經捆綁好的。需要記住的一點,在整個共用站點系統中,我們只需要一個uc_client,因為uc_server只會在它定義的uc_client路徑中尋找data文件中的apps數組。

因此在多站點同步登陸登出的關鍵文件只有兩個,一個是config.ini.php,另一個是uc.php。前者告訴uc_server我們這個應用的配置,后者供uc_server調用。

把examples/api/uc.php文件復制到我們的tanahk/api/uc.php,examples/config.inc.php和examples/include也添加進來。目錄結構變為

6

code文件夾我用來查看一些源碼

好了,現在可以在UCenter后臺添加我們的項目應用了。uc的后臺一般為http://www.xxx.com/x3.2/uc_server/admin.php

7

選擇“應用管理”--“添加新應用”

參考上面準備工作中2。

應用類型:其它 應用名稱:Tanahk,這里只能填寫英文 通信密鑰:隨意一串不多于64位的字母數字。 應用的物理路徑:可以為空,只要應用主url填寫正確 應用接口文件名稱:保留,uc.php,不用填api/uc.php 是否開啟同步登陸:是,這是關鍵,以后多個項目共用一個uc就行了,不用自己新建一套用戶系統。 提交。

提交后一般是通信錯誤的。

我們先修改tanahk/api/config.inc.php 。這里的數據非常重要,如果安裝了discuz x或其它discuz產品,最好對照discuz root/config下面的配置文件修改。

<?phpdefine('UC_CONNECT', null);                // 連接 UCenter 的方式: MySQL/NULL, 默認為空時為 fscoketopen()                            // mysql 是直接連接的數據庫, 經實踐,還是填寫null好。mysql有時無法執行//數據庫相關 (mysql 連接時, 并且沒有設置 UC_DBLINK 時, 需要配置以下變量)define('UC_DBHOST', 'localhost');            // UCenter 數據庫主機define('UC_DBUSER', 'root');                // UCenter 數據庫用戶名define('UC_DBPW', '111111');                    // UCenter 數據庫密碼define('UC_DBNAME', 'ultrax');                // UCenter 數據庫名稱define('UC_DBCHARSET', 'utf8');                // UCenter 數據庫字符集define('UC_DBTABLEPRE', '`ultrax`.pre_ucenter_');            // UCenter 數據庫表前綴define('UC_DBCONNECT', 0);                    // 是否持久化鏈接//通信相關define('UC_KEY', '…');                // 與 UCenter 的通信密鑰, 要與注冊應用時填寫的保持一致define('UC_API', 'http://www.xxx.com/x3.2/uc_server');    // UCenter 的 URL 地址, 在調用頭像時依賴此常量define('UC_CHARSET', 'utf-8');                // UCenter 的字符集define('UC_

認真對照,特別是UC_KEY與UC_APPID,id一般為2以后的數字,查看uc后臺,1被discuz x霸占了。 上面的配置不能遺漏。 UC_DBHOST,如果填寫mysql,最好帶port,可以包括端口號,例如 “hostname:port”,或者到本地套接字的路徑,例如對于 localhost 的 “:/path/to/socket”。UC_PPP:默認值為 20,與 UCenter 日志顯示的條數和通知管理顯示的條數有關系。

在上述配置最后加上一句 :

$cookiename = 'tanahk';        // 用戶自定義的cookie名

它用來貯存用戶登陸成功后的cookie值。

我們現在需要花大力氣修改uc.php。首先是修改開頭的常量定義

error_reporting(0);define('IN_DISCUZ', TRUE);define('UC_CLIENT_VERSION', '1.5.0');    //note UCenter 版本標識define('UC_CLIENT_RELEASE', '20081031');define('API_DELETEUSER', 1);            //note 用戶刪除 API 接口開關define('API_RENAMEUSER', 1);            //note 用戶改名 API 接口開關define('API_GETTAG', 1);                //note 獲取標簽 API 接口開關define('API_SYNLOGIN', 1);                //note 同步登錄 API 接口開關define('API_SYNLOGOUT', 1);                //note 同步登出 API 接口開關define('API_UPDATEPW', 1);                //note 更改用戶密碼 開關define('API_UPDATEBADWordS', 1);        //note 更新關鍵字列表 開關define('API_UPDATEHOSTS', 1);            //note 更新域名解析緩存 開關define('API_UPDATEAPPS', 1);            //note 更新應用列表 開關define('API_UPDATECLIENT', 1);            //note 更新客戶端緩存 開關define('API_UPDATECREDIT', 1);            //note 更新用戶積分 開關define('API_GETCREDITSETTINGS', 1);        //note 向 UCenter 提供積分設置 開關define('API_GETCREDIT', 1);                //note 獲取用戶的某項積分 開關define('API_UPDATECREDITSETTINGS', 1);    //note 更新應用積分設置 開關define('API_RETURN_SUCCEED', '1');define('API_RETURN_FAILED', '-1');define('API_RETURN_FORBIDDEN', '-2');// 改你真實的discuz地址define('DISCUZ_ROOT', realpath(dirname(__FILE__) . '/../../x3.2/'));// 本應用配置路徑define('DISCUZ_UC_CONFIG', realpath(dirname(__FILE__)));

然后是修改下面的note通知方式。

//note 普通的 http 通知方式if(!defined('IN_UC')) {        if (!defined('PHP_VERSION_ID'))    {        $version = explode('.', PHP_VERSION);        define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));    }        // set_magic_quotes_runtime 5.3.0版本不贊成使用,5.4.0廢棄    if (PHP_VERSION_ID < 530)        set_magic_quotes_runtime(0);        // 修改常量MAGIC_QUOTES_GPC,與php5.4接地氣,讓它一直為false    define('MAGIC_QUOTES_GPC', false);    require_once DISCUZ_UC_CONFIG . '/config.inc.php';        $GLOBALS['cookiename'] = $cookiename;    $_DCACHE = $get = $post = array();    $code = isset($_GET['code']) ? $_GET['code'] : '';    parse_str(_authcode($code, 'DECODE', UC_KEY), $get);        $timestamp = time();    if($timestamp - $get['time'] > 3600)         exit('Authracation has expiried');            if(empty($get))         exit('Invalid Request');            $action = $get['action'];    require_once  DISCUZ_ROOT . '/uc_client/lib/xml.class.ph
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品人成电影| 日本精品久久久久影院| 亚洲欧美国产va在线影院| 亚洲国产古装精品网站| 久久综合电影一区| 国产精品91一区| 欧美精品电影在线| 综合激情国产一区| 久久精品国产欧美亚洲人人爽| 久久久精品久久| 亚洲欧美另类中文字幕| 国产网站欧美日韩免费精品在线观看| 亚洲欧美日韩国产中文| 国产精品国产自产拍高清av水多| 亚洲人成人99网站| 欧美日韩性生活视频| 欧美日韩在线免费观看| 亚洲精品永久免费精品| 久久久久国产精品www| 日韩在线不卡视频| 91亚洲精品久久久| 国产精品永久免费| 中文字幕亚洲无线码在线一区| 色婷婷**av毛片一区| 成人免费视频在线观看超级碰| 秋霞av国产精品一区| 欧美高清不卡在线| 亚洲精品美女久久| 91精品国产九九九久久久亚洲| 久久综合电影一区| 91精品国产高清久久久久久久久| 久久九九热免费视频| 国产精品69av| 亚洲97在线观看| 亚洲男人第一av网站| 欧美性色视频在线| 亚洲欧美日韩国产中文专区| 国产精品91视频| 日韩美女在线观看| 国产精品久久一区| 亚洲激情成人网| 精品久久久视频| 国语自产在线不卡| 国模视频一区二区| 欧美日韩国产一区二区三区| 性色av一区二区三区红粉影视| 欧美华人在线视频| 在线播放日韩精品| 国产精品国内视频| 色999日韩欧美国产| 成人444kkkk在线观看| 亚洲第一av在线| 欧美孕妇性xx| 精品中文字幕在线观看| 国产欧美一区二区三区四区| 亚洲第一级黄色片| 久久91亚洲人成电影网站| 亚洲电影免费观看高清| 伊人伊成久久人综合网站| 欧美日本在线视频中文字字幕| 久久久噜噜噜久久久| 亚洲性生活视频在线观看| 国模精品系列视频| 91香蕉嫩草影院入口| 欧美一区二粉嫩精品国产一线天| 91亚洲永久免费精品| 色悠久久久久综合先锋影音下载| 国产精品扒开腿做爽爽爽的视频| 亚洲少妇激情视频| 国产精品一二三视频| 国产精品一区二区三区在线播放| 欧美裸体xxxx极品少妇软件| 欧美性xxxxx极品| 久久影院模特热| 亚洲精品美女在线观看| 国产精品久久97| 日韩中文字幕在线观看| xvideos亚洲| 日韩电影视频免费| 亚洲图片制服诱惑| 日韩中文在线不卡| 欧美性xxxxhd| 亚洲第一精品夜夜躁人人爽| 91精品国产777在线观看| 亚洲r级在线观看| 国产精品亚洲视频在线观看| 欧美一区深夜视频| 亚洲第一区在线| 欧美午夜精品久久久久久人妖| 国产成人精品免高潮在线观看| 91香蕉嫩草神马影院在线观看| 久久精品成人一区二区三区| 亚洲美女av在线播放| 亚洲国产精品va在线观看黑人| 欧美另类xxx| 成人h片在线播放免费网站| 欧美性极品少妇精品网站| 国产精品视频一区二区三区四| 国产精品一区二区三区免费视频| 久久中文字幕国产| 亚洲图片欧洲图片av| 久久久久久久999精品视频| 最近2019中文免费高清视频观看www99| 亚洲性夜色噜噜噜7777| 久久久久国产精品免费| 亚洲国产天堂网精品网站| 亚洲精品福利免费在线观看| 在线观看国产欧美| 久久久999国产精品| 姬川优奈aav一区二区| 欧美成在线观看| 久久久久久久成人| 欧美日韩国产成人在线| 91在线播放国产| 91影院在线免费观看视频| 亚洲欧美成人一区二区在线电影| 亚洲精品美女免费| 91精品久久久久久久久| 在线电影欧美日韩一区二区私密| 欧美午夜精品久久久久久浪潮| 中文字幕欧美日韩va免费视频| 国产美女搞久久| 国产成人avxxxxx在线看| 日本老师69xxx| 国产精品视频地址| 91sao在线观看国产| 久久久伊人日本| 亚洲综合大片69999| 欧美日韩国产限制| 在线播放日韩av| 欧美日韩中文字幕在线| 日韩国产中文字幕| 欧美视频在线免费| 成人激情视频小说免费下载| 亚洲精品美女在线观看| 欧美精品在线极品| 久久久久久久久中文字幕| 亚洲性69xxxbbb| 亚洲白虎美女被爆操| 精品小视频在线| 国产精品久久久久久久7电影| 国产精品入口夜色视频大尺度| 国产一区二区日韩精品欧美精品| 欧美午夜激情小视频| 欧美激情免费观看| 国产精品久久电影观看| 在线视频免费一区二区| 久久久亚洲精选| 欧美黄色片在线观看| 热久久99这里有精品| 91精品国产综合久久男男| 久久视频在线免费观看| 欧美成人激情在线| 中国china体内裑精亚洲片| 国产成人福利夜色影视| 欧美性理论片在线观看片免费| 欧美一区二区三区精品电影| 国产有码一区二区| 91亚洲精品久久久| www.日韩免费| 久久九九亚洲综合| 国产成人亚洲综合| 色婷婷久久一区二区| 国产精品青青在线观看爽香蕉|