三步教你ThinkPHP3.0快速整合UCenter
首先我們先安裝Thinkphp,我們這次教程使用的是Thinkphp3.0穩(wěn)定版,首先我們下載Thinkphp3.0,解壓并放在自己的 www目錄,在根目錄新建 index.php 文件 并寫入: require_once './ThinkPHP/ThinkPHP.php'; 通過本機游覽index.php 、 thinkphp會生成相應(yīng)目錄。 (*^__^*) 嘻嘻…… 很智能的哦。然后配置config.php 寫入你的數(shù)據(jù)庫連接配置,這個曉漁就不寫了,請不會的童鞋查下手冊吧!
然后下載目前最新版本的UCenter 1.6 版本,在網(wǎng)站根目錄新建 ucenter 目錄,解壓UCenter,把upload目錄里的所有文件上傳到你剛才新建的ucenter目錄里,在游覽器輸入 http://localhost/uceter/install/ 如果不是這個訪問地址請換成相應(yīng)的訪問地址哦 ! 安裝ucenter。
然后找到下載的UCenter,把 advanced 目錄里面的 uc_client 和 examples下面的api 文件夾復(fù)制到你的網(wǎng)站根目錄,是好ThinkPHP同級目錄哦。
現(xiàn)在開始進行我們的api目錄里面的uc.php 配置了,首先我們用編輯器打開這個文件,找到36行的位置,發(fā)現(xiàn)這里導(dǎo)入了一個配置文件 require_once DISCUZ_ROOT.'./config.inc.php'; 基于ThinkPHP的目錄結(jié)構(gòu),所有的配置文件都放在Config目錄里,那么我們在 Config目錄里新建 config_ucenter.php 文件,并把uc.php文件所有包含的 require_once DISCUZ_ROOT.'./config.inc.php'; 修改為 require_once DISCUZ_ROOT.'./Conf/config_ucenter.php'; 有的童鞋可能會問了 config_ucenter.php怎么配置呢?其實這個是非常簡單的,甚至不用我們來寫代碼,直接復(fù)制粘貼就OK了 ,我們先登錄到 ucenter 應(yīng)用管理,添加一個應(yīng)用吧!點擊左側(cè)菜單欄 應(yīng)用管理 ,然后我們看到還沒有應(yīng)用,那么我們點擊添加應(yīng)用,哇,讓我們填寫的還挺多啊。那么我們首先看選擇應(yīng)用,因為我們是自己的程序,選擇其他吧,應(yīng)用名稱,這 個隨便起個名字就可以 20字節(jié)之內(nèi)哦。應(yīng)用的主url ,我們這次講解的是Thinkphp整合Ucenter 那么我們的Thinkphp是在跟目錄的,這里我填入 http://www.ttedu.com.cn 童鞋們?nèi)绻潜镜鼐吞顚?http://localhost 不用加 "/" 哦,下面是應(yīng)用IP,后面說明說不用填寫,那么我們就留空吧,以為我比較懶 呵呵!應(yīng)用密鑰?這里怎么填呢。其實這里隨便寫入些字符串就可以 ,這個密鑰是兩個程序之間互通的嚴重,相當于你去別人家拿東西,別人最起碼要認識你一樣,如果別人都不認識你,怎么會把東西給你呢?更何況是網(wǎng)站核心的會 員信息啊。呵呵!我們測試用 ,隨便填上點吧 “123456” 呵呵 ,我比較懶吧!應(yīng)用的物理路徑?也提示說可以不用填寫,那么留空吧!個人資料頁面?這個有點犯難了,UCenter怎么會這么智能呢?留空吧。。應(yīng)用程序 名稱,他已經(jīng)幫我填好了,咱們跳過!呵呵
標簽單條顯示模板 不知道干嘛的 跳過吧。。標簽?zāi)0鍢擞浾f明 繼續(xù)跳過。
是否開啟同步登錄 這個不用說了 選中。 是否接受通知 繼續(xù)選中。OK了 基本信息填完了,提交下 。通信失敗?這是為什么呢?頭疼啊。。我們看下面多了個 “應(yīng)用的 UCenter 配置信息” 右側(cè)還有詳細說明:當應(yīng)用的 UCenter 配置信息丟失時可復(fù)制左側(cè)的代碼到應(yīng)用的配置文件中 。一切變的明了了。復(fù)制文本框內(nèi)的配置信息,我記得我們之前新建一個 config_ucenter.php 的文件還是空的,難道放這里的嗎?那么試一下吧!把這些信息粘貼到里面,保存。 在看ucenter 刷新下! OK 通信成功!不錯,基本通信我們就完成了!
現(xiàn)在開始程序正式的整合!將ucenter 提供的api方法封裝下,讓我們的程序看起來更加干凈整潔!首先,我們先在lib目錄下新建一個文件夾,并命名為:Service。這個文件夾的功能一會 在和大家講解。然后再Service 里面建立我們自己的類,以方便和UC的通信,新建php文件,文件名為:UcService.class.php,
類名UcService,我們在類里實現(xiàn)對UCenter的操作。要操作UCenter的API ,首先我們要導(dǎo)入相應(yīng)的文件,相信大家已經(jīng)想到了,第一個是UCenter的配置文件:config_ucenter.php,第二個是我的程序和 UCenter通信的 client.php 文件 。導(dǎo)入這兩個文件,我們在index.php入口文件增加一個常量,來定義我們的物理跟目錄。
//項目物理跟路徑
define('DOC_ROOT_PATH', rtrim(dirname(__FILE__), '/\\') . DIRECTORY_SEPARATOR);
然后我們在UcService.class.php里定義一個構(gòu)造函數(shù),來導(dǎo)入我們的這兩個文件,
public function __construct()
{
include_once(DOC_ROOT_PATH . 'Conf/config_ucenter.php');
include_once(DOC_ROOT_PATH . 'uc_client/client.php');
}
OK!相信童鞋們都已經(jīng)完成了上述的步驟,下面我們來編寫相應(yīng)的代碼,來實現(xiàn)和UCenter的同步,首先我們先來完成注冊的代碼。
//用戶注冊 這個方法是UcService.class.php的
public function register($username, $password, $email)
{
$uid = uc_user_register($username, $password, $email);
if($uid <= 0) {
if($uid == -1) {
return '用戶名不合法';
} elseif($uid == -2) {
return '包含不允許注冊的詞語';
} elseif($uid == -3) {
return '用戶名已經(jīng)存在';
} elseif($uid == -4) {
return 'Email 格式有誤';
} elseif($uid == -5) {
return 'Email 不允許注冊';
} elseif($uid == -6) {
return '該Email 已經(jīng)被注冊';
} else {
return '未定義';
}
} else {
return intval($uid);
}
}
這個函數(shù)是UCenter的注冊驗證,只要我們在程序中實例這個類,使用這個函數(shù)就能進行和UCenter的通信驗證注冊。
那么我們是怎么使用它的呢?
首先我的注冊文件是 http://www.ezcx.net/Register/teach,也就是說在你的程序目錄里,Lib/Action/Home/下面有一 個Register.class.php 文件,我們打開這個文件,如果沒有請創(chuàng)建這個文件,我的目錄下面是有分組的Home是分組的名稱目錄,如果沒有配置的童鞋請直接在Action目錄創(chuàng)建, 這個類要繼承Action哦!然后我們在在類里面創(chuàng)建一個teach的方法函數(shù),用來顯示一個注冊的頁面。
然后我們在新建一個函數(shù),用來處理teach方法函數(shù)提交的數(shù)據(jù),并加入到數(shù)據(jù)庫!這里是主要的嘍哦!
public teach(){
$this->display();
}
public function regDo(){
if($this->isPost()){
if(!$_REQUEST['username'] || !$_REQUEST['email'] || !$_REQUEST['password']){
exit('data invalid.');
}
$nick = $_REQUEST['username'];
$email = $_REQUEST['email'];
$pw = trim($_REQUEST['password']);//這個類需要在Conf/config.php里配置下的哦,一會下面會講到!
$ucService = new UcService;
$uid = $ucService->register($nick, $pw, $email);
//成功注冊到UC
if(!is_string($uid)){
$send_email = false;
$is_verifyed = 1;
//本地注冊
$uModel = D('auser');
$data['user_id'] = $uid;
$data['nick'] = $nick;
$data['email'] = $email;
$data['password'] = md5($pw);
if($uModel->add($data)){
$this->success("注冊成功!","__APP__/");
}else{
$this->error("注冊失敗!");
}
}else{
exit($uid);
}
}
}
本地注冊后面,童鞋們可以直接寫你們的程序邏輯代碼,執(zhí)行這一步之前,我們要在Conf/config.php里加上一句,
'APP_AUTOLOAD_PATH' => '@.Service',
這句話的意思是告訴ThinkPHP,我們程序執(zhí)行的時候自動導(dǎo)入Action下面的Service目錄里的文件,如果不導(dǎo)入的話,在我們regDo里是會報錯的哦 !會提示找不到UcService 類,下面我們來測試下是不是可以注冊成功呢?
我們打開http://www.ezcx.net/Register/teach 填寫用戶名,密碼,郵箱,提交!OK!程序提示我們注冊成功了!那么我們進入UCenter看看是否有用戶注冊成功了呢?我剛才填寫的是 用戶名:test 密碼:123456 郵箱:ezcx@ezcx.net,在ucenter的用戶管理我們看到已經(jīng)有了 出現(xiàn)了我們剛才注冊的用戶,說明我們注冊的已經(jīng)成功了!
推薦文章
2025-01-18
2024-11-28
2024-11-09
2024-10-25
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩(wěn)定
產(chǎn)品高可用性高并發(fā)貼心
項目群及時溝通專業(yè)
產(chǎn)品經(jīng)理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽堅持
10年專注高端品質(zhì)開發(fā)聯(lián)系我們
友情鏈接: