ThinkPHP3.1.2整合UCenter详解(三)

在上一章中的ThinkPHP3.1.2整合UCenter详解(二)已经实现了通讯成功了!


接下来我们的目标:在thinkphp中会员注册成功时,UCenter Home也同时注册成功。


首先在项目W3note入口文件index.php配置一个常量

1 define('WBLOG_ROOT_PATH', rtrim(dirname(__FILE__), '/\\') . DIRECTORY_SEPARATOR);//物理根目录


常量WBLOG_ROOT_PATH是网站根目录wblog1的物理根目录,在我本地服务器打印输出:
D:\phpsever\apache2\htdocs\wblog1\
有必要在这里强调一下,理解WBLOG_ROOT_PATH很重要,因为在调试过程中路径最容易出错。


    还记得前面我们建的UcService.class.php 文件吗?如果忘记了请看一下前面的目录树。打开UcService.class.php文件,新建一个类UcService,然后写一个构造方法导入W3note/Conf/config_ucenter.php和uc_client/client.php两个文件。代码:

1 class UcService{   
2         
3  public function __construct(){   
4          
5   include_once(WBLOG_ROOT_PATH . 'W3note/Conf/config_ucenter.php');   
6   include_once(WBLOG_ROOT_PATH . 'uc_client/client.php');   
7  }


接下来我们写一个会员注册方法register,如

1 public function register($username$password$email){}


    方法体放什么代码呢?其实很简单,因为UCenter的开发文档已经为我们准备好了!

    找到之前下载的UCenter_1.6.0_SC_UTF8,用浏览器打开UCenter_1.6.0_SC_UTF\advanced\document\index.htm,然后在左边的菜单栏找到“用户接口”,看到用户注册示例 (PHP),把其下的代码复制过来。如下

01 /**   
02   * 会员注册   
03   */
04  public function register($username$password$email){   
05          
06   $uid = uc_user_register($username$password$email);//UCenter的注册验证函数   
07   if($uid <= 0) {   
08    if($uid == -1) {   
09     return '用户名不合法';   
10    elseif($uid == -2) {   
11     return '包含不允许注册的词语';   
12    elseif($uid == -3) {   
13     return '用户名已经存在';   
14    elseif($uid == -4) {   
15     return 'Email 格式有误';   
16    elseif($uid == -5) {   
17     return 'Email 不允许注册';   
18    elseif($uid == -6) {   
19     return '该 Email 已经被注册';   
20    else {   
21     return '未定义';   
22    }   
23   else {   
24    return intval($uid);//返回一个非负数   
25   }   
26  }   
27         
28 }


这个注册方法register的作用是,在wblog1的会员注册中成功注册一个会员时,也会成功注册UCenter Home的会员中心中。UCenter的注册方法我们在上面已经写好了,现在回到thinkphp。我们在前台W3note项目的控制器MemberAction写一个注册方法,代码如下:

01 /*   
02 用户名:$username,    
03 密码:$password,    
04 邮箱:$email   
05 */
06 public function addmember(){    
07         if($this->isPost()){   
08         $username $_POST['username'];   
09         $email $_POST['email'];   
10         $password = trim($_POST['password']);   
11         import("@.ORG.UcService");//导入UcService.class.php类   
12         $ucService new UcService;//实例化UcService类   
13         $uid $ucService->register($username$password$email);//注册到UCenter   
14              
15        if($uid){//如果上面注册成功将返回一个int类型的数字   
16                 
17         $M = D('Member');   
18           
19    if ($vo $M->create()) {   
20       if ($M->add()) {   
21          $this->success('注册成功!');   
22       else {   
23         $this->error('注册失败!');   
24       }   
25    else {   
26      $this->error();   
27    }   
28        }else{   
29         exit($uid);   
30        }   
31        }else{   
32        $this->error('非法数据!');   
33        }   
34      }


我们在thinkphp会员注册页面注册一个帐号,提交表单后,查看wblog1和UCenter的会员数据表,发现两张表都存相同的帐号,说明同步注册已经成功了!

你可能感兴趣的:(ThinkPHP3.1.2整合UCenter详解(三))