ThinkPHP3.0整合UCenter1.6 之(二)

來源:互聯網
上載者:User

仲介交易 HTTP://www.aliyun.com/zixun/aggregation/6858.html">SEO診斷 淘寶客 雲主機 技術大廳

因為這幾天有個專案要交付,所以一直很忙,沒時間把thinkphp3.0整合ucenter1.6的後續寫完,今天終於有點時間把tp整合uc來完成,讓大家久等,實在不好意思!

之前發表了一篇thinkphp3.0整合ucenter1.6 得到大家的認同,後來有些網友反映還是無法整合,後來總結了一下,發現是我上次沒有說太清楚, 最終原因是沒有把uc.php裡的路徑全部修改過來,大家查找uc.php裡面的config.inc.php,並修改成我們自己設定檔的名字 config_ucenter.php ,並修改相應的路徑!這樣就可以通信成功了!

如果不成功的童鞋可以給我留言,或者直接諮詢我,在我不忙的時候會回復大家的!

好了 ,言歸正傳,現在開始正式的整合!我的思路是將ucenter 提供的api方法封裝下,讓我們的程式看起來更加乾淨整潔!首先,我們先在lib目錄下新建一個資料夾,並命名為:Service。 這個資料夾的功能一會在和大家講解。 然後再Service 裡面建立我們自己的類,以方便和UC的通信,新建php檔,檔案名為:UcService.class.php,

類名UcService,我們在類裡實現對UCenter的操作。 要操作UCenter的API ,首先我們要導入相應的檔,相信大家已經想到了,第一個是UCenter的設定檔:config_ucenter.php,第二個是我的程式和UCenter通信的 client.php 檔 。 導入這兩個檔,我們在index.php入口檔增加一個常量,來定義我們的物理跟目錄。

專案物理跟路徑

define('DOC_ROOT_PATH', rtrim(dirname(__FILE__), '/\\') . DIRECTORY_SEPARATOR);

然後我們在UcService.class.php裡定義一個建構函式,來導入我們的這兩個檔,

public function __construct()
{
include_once(DOC_ROOT_PATH . 'Conf/config_ucenter.php');
include_once(DOC_ROOT_PATH . 'uc_client/client.php');
}

OK!相信童鞋們都已經完成了上述的步驟,下面我們來編寫相應的代碼,來實現和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 '使用者名已經存在';
} elseif($uid == -4) {
return 'Email 格式有誤';
} elseif($uid == -5) {
return 'Email 不允許註冊';
} elseif($uid == -6) {
return '該Email 已經被註冊';
} else {
return '未定義';
}
} else {
return intval($uid);
}
}

這個函數是UCenter的註冊驗證,只要我們在程式中實例這個類,使用這個函數就能進行和UCenter的通信驗證註冊。

那麼我們是怎麼使用它的呢?

首先我的註冊檔是 HTTP://www.ttedu.com.cn/Register/teach,也就是說在你的程式目錄裡,Lib/Action/Home/下面有一個Register.class.php 檔, 我們打開這個檔,如果沒有請創建這個檔,我的目錄下面是有分組的Home是分組的名稱目錄,如果沒有配置的童鞋請直接在Action目錄創建,這個類要繼承Action哦!然後我們在在類裡面創建一個teach的方法函數, 用來顯示一個註冊的頁面。

然後我們在新建一個函數,用來處理teach方法函數提交的資料,並加入到資料庫!這裡是主要的嘍哦!

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);
}

}
}

本地註冊後面,童鞋們可以直接寫你們的程式邏輯代碼,執行這一步之前,我們要在Conf/config.php里加上一句,

'APP_AUTOLOAD_PATH' => '@. Service',

這句話的意思是告訴ThinkPHP,我們程式執行的時候自動導入Action下面的Service目錄裡的檔,如果不導入的話,在我們regDo裡是會報錯的哦 !會提示找不到UcService 類, 下面我們來測試下是不是可以註冊成功呢?

我們打開HTTP://www.ttedu.com.cn/Register/teach 填寫使用者名,密碼,郵箱,提交! OK!程式提示我們註冊成功了!那麼我們進入UCenter看看是否有使用者註冊成功了呢?我剛才填寫的是 使用者名:test 密碼:123456 郵箱:ttedus@126.com 在ucenter的使用者管理我們看到已經有了 出現了我們剛才註冊的使用者,說明我們註冊的已經成功了!下面就是登陸的代碼了!寫著太累了我直接打包到論壇裡吧! 或者留下郵箱我發到你們郵箱!

ThinkPHP3.0整合UCenter教程(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.