網站整合Ucenter詳細流程


 
第一步:下載安裝UCenter,這裏就不詳細說了,網上很多教程
 
1.下載UCenter
下載地址:
 
2.安裝UCenter
 
第二步:打開下載UCenter文件夾內的advanced文件夾,這裏就是接口文件啦,裏面的document就是接口的API說明,examples文件夾就是一些使用例子,按照這些例子會很快掌握你想要達到的效果,uc_client是接口文件。
 

第三步:從examples文件夾中複製include文件夾到你網站根目錄,文件夾內包含一個文件叫db_mysql.class.PHP,這是連接數據庫的類。
 
第四步:將uc_client文件夾整個複製到你網站根目錄,uc_client之前說了是接口代碼,現在根目錄已經有include和uc_client兩個文件夾了。
 
第五步:複製examples文件夾內的config.inc.php到你網站的根目錄,這是配置UCenter的配置文件
 
第六步:配置config.inc.php的各種參數,參數裏面已經寫的很詳細了
 
<?php
 
define(’UC_CONNECT’, ‘MySQL’);    // 連接 UCenter 的方式: mysql/NULL, 默認爲空時爲 fscoketopen()
       // mysql 是直接連接的數據庫, 爲了效率, 建議採用 mysql
 
//數據庫相關 (mysql 連接時, 並且沒有設置 UC_DBLINK 時, 需要配置以下變量)
define(’UC_DBHOST’, ‘localhost’);   // UCenter 數據庫主機
define(’UC_DBUSER’, ‘root’);    // UCenter 數據庫用戶名
define(’UC_DBPW’, ”);     // UCenter 數據庫密碼
define(’UC_DBNAME’, ‘ucenter’);    // UCenter 數據庫名稱
define(’UC_DBCHARSET’, ‘gbk’);    // UCenter 數據庫字符集
define(’UC_DBTABLEPRE’, ‘ucenter.uc_’);   // UCenter 數據庫表前綴
 
//通信相關
define(’UC_KEY’, ‘123456789′);    // 與 UCenter 的通信密鑰, 要與 UCenter 保持一致
define(’UC_API’, ‘’); // UCenter 的 URL 地址, 在調用頭像時依賴此常量
define(’UC_CHARSET’, ‘gbk’);    // UCenter 的字符集
define(’UC_IP’, ”);     // UCenter 的 IP, 當 UC_CONNECT 爲非 mysql 方式時, 並且當前應用服務器解析域名有問題時, 請設置此值
define(’UC_APPID’, 1);     // 當前應用的 ID

 

//ucexample_2.php 用到的應用程序數據庫連接參數
$dbhost = ‘localhost’;   // 數據庫服務器
$dbuser = ‘root’;   // 數據庫用戶名
$dbpw = ”;    // 數據庫密碼
$dbname = ‘ucenter’;   // 數據庫名
$pconnect = 0;    // 數據庫持久連接 0=關閉, 1=打開
$tablepre = ‘example_’;     // 表名前綴, 同一數據庫安裝多個論壇請修改此處
$dbcharset = ‘gbk’;   // MySQL 字符集, 可選 ‘gbk’, ‘big5′, ‘utf8′, ‘latin1′, 留空爲按照論壇字符集設定
 
//同步登錄 Cookie 設置
$cookiedomain = ”;    // cookie 作用域
$cookiepath = ‘/’;   // cookie 作用路徑
 
其中通訊密匙需要自己去已經安裝好的UCenter系統中填寫
 
登陸UCenter後點擊左側應用管理,右方有添加新應用,選擇自定義安裝,填寫應用名稱,應用的URL(就是config.inc.php文件所在目錄,一般放在根目錄,就是填),通訊密匙你喜歡隨便填,應用類型選其他,開啓同步登陸,接收通知
 
提交之後會生成一段應用的UCenter配置信息,複製這些配置信息覆蓋到config.inc.php對應這部分的信息
 

配置信息這邊就告一段落了,開始正式整合UCenter了
 
第七步:將以下代碼加入到你需要使用到UCenter的地方(我是加到所有文件都包含的common.php裏)
 
include_once ‘config.inc.php’;
include_once ‘include/db_mysql.class.php’;
$db = new dbstuff;
$db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
unset($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
include_once ‘uc_client/client.php’;
 
如此一來整合就完成了,你只需要加入你需要的接口函數即可通訊到UCenter,以下只介紹同步註冊,登陸,退出,其他功能可以參考API
 
同步登陸BBS(這個版本我有改良到,做了自動激活):
 
list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['pw']);
 
//這裏輸入用戶的用戶名和密碼
 
setcookie(’auth’, ”, -86400);
if($uid > 0) {
   if(!$db->result_first(”SELECT count(*) FROM {$tablepre}members WHERE uid=’$uid’”)) {
    //判斷用戶是否存在於用戶表,不存在則跳轉到激活頁面
    //$auth = rawurlencode(uc_authcode(”$username/t”.time(), ‘ENCODE’));
    //echo ‘您需要需要激活該帳號,才能進入本應用程序<br><a href=”bbs/logging.php?example=register&action=activation&auth=’.$auth.’”>繼續</a>’;
    $tmp = $db->query(”select count(*) from {$tablepre}members where uid=”.$uid);
    if(!($userNotexist = $db->result($tmp))){
     $sql = “insert into {$tablepre}members (uid,username,email,groupid,timeoffset) values ({$uid},’{$username}’,'{$email}’,'10′,’9999′)”;
     $sql = $db->query($sql);
     $sql = “insert into {$tablepre}memberfields (uid) values ({$uid})”;
     $sql = $db->query($sql);
    }
   }

 

 

//用戶登陸成功,設置 Cookie,加密直接用 uc_authcode 函數,用戶使用自己的函數
   setcookie(’auth’, uc_authcode($uid.”/t”.$username, ‘ENCODE’));
   //生成同步登錄的代碼
   $ucsynlogin = uc_user_synlogin($uid);
 
   echo $ucsynlogin.’<br><a href=”‘.$_SERVER['PHP_SELF'].’”></a>’;
 
} elseif($uid == -1) {
   // echo ‘用戶不存在,或者被刪除’;

   }
}elseif($uid == -2) {
   //echo ‘密碼錯’;
} else {
   //echo ‘未定義’;
}
 
同步註冊:
 
//同步註冊ucenter
$uid = uc_user_register($_POST['username'], $_POST['password'], $_POST['email']);
    if($uid <= 0) {
        if($uid == -1) {
            echo ‘用戶名不合法’;
        } elseif($uid == -2) {
            echo ‘包含要允許註冊的詞語’;
        } elseif($uid == -3) {
            echo ‘用戶名已經存在’;
        } elseif($uid == -4) {
            echo ‘Email 格式有誤’;
        } elseif($uid == -5) {
            echo ‘Email 不允許註冊’;
        } elseif($uid == -6) {
            echo ‘該 Email 已經被註冊’;
        } else {
            echo ‘未定義’;
        }
    } else {

   //同步登陸bbs
   list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['password']);
   setcookie(’auth’, ”, -86400);
   if(!$db->result_first(”SELECT count(*) FROM {$tablepre}members WHERE uid=’$uid’”)) {
    //判斷用戶是否存在於用戶表,不存在則跳轉到激活頁面
    //$auth = rawurlencode(uc_authcode(”$username/t”.time(), ‘ENCODE’));
   // echo ‘您需要需要激活該帳號,才能進入本應用程序<br><a href=”bbs/logging.php?example=register&action=activation&auth=’.$auth.’”>繼續</a>’;
    $tmp = $db->query(”select count(*) from {$tablepre}members where uid=”.$uid);
    if(!($userNotexist = $db->result($tmp))){
     $sql = “insert into {$tablepre}members (uid,username,email,groupid,timeoffset) values ({$uid},’{$username}’,'{$email}’,'10′,’9999′)”;
     $sql = $db->query($sql);
     $sql = “insert into {$tablepre}memberfields (uid) values ({$uid})”;
     $sql = $db->query($sql);
    }
   }
   //用戶登陸成功,設置 Cookie,加密直接用 uc_authcode 函數,用戶使用自己的函數
   setcookie(’auth’, uc_authcode($uid.”/t”.$username, ‘ENCODE’));
   //生成同步登錄的代碼
   $ucsynlogin = uc_user_synlogin($uid);
   echo $ucsynlogin.’<br><a href=”‘.$_SERVER['PHP_SELF'].’”></a>’;
  
        //註冊成功,設置 Cookie,加密直接用 uc_authcode 函數,用戶使用自己的函數
       // setcookie(’auth’, uc_authcode($uid.”/t”.$_POST['username'], ‘ENCODE’));
        //echo ‘註冊成功<br><a href=”‘.$_SERVER['PHP_SELF'].’”>繼續</a>’;
    }

 

同步退出:
 
//同步退出bbs
setcookie(’auth’, ”, -86400);
//生成同步退出的代碼
$ucsynlogout = uc_user_synlogout();
echo ”.$ucsynlogout.’<br><a href=”‘.$_SERVER['PHP_SELF'].’”></a>’;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章