专注于WEB技术的IT博客

ThinkPHP3.1.2整合UCenter详解(三)

时间:2013-01-21分类: Thinkphp浏览:12018
分享到:

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


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


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

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两个文件。代码:

class UcService{   
       
 public function __construct(){   
        
  include_once(WBLOG_ROOT_PATH . 'W3note/Conf/config_ucenter.php');   
  include_once(WBLOG_ROOT_PATH . 'uc_client/client.php');   
 }


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

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


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

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

/**   
  * 会员注册   
  */
 public function register($username, $password, $email){   
        
  $uid = uc_user_register($username, $password, $email);//UCenter的注册验证函数   
  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);//返回一个非负数   
  }   
 }   
       
}


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

/*   
用户名:$username,    
密码:$password,    
邮箱:$email   
*/
public function addmember(){    
        if($this->isPost()){   
        $username = $_POST['username'];   
        $email = $_POST['email'];   
        $password = trim($_POST['password']);   
        import("@.ORG.UcService");//导入UcService.class.php类   
        $ucService = new UcService;//实例化UcService类   
        $uid = $ucService->register($username, $password, $email);//注册到UCenter   
            
       if($uid){//如果上面注册成功将返回一个int类型的数字   
               
        $M = D('Member');   
         
   if ($vo = $M->create()) {   
      if ($M->add()) {   
         $this->success('注册成功!');   
      } else {   
        $this->error('注册失败!');   
      }   
   } else {   
     $this->error();   
   }   
       }else{   
        exit($uid);   
       }   
       }else{   
       $this->error('非法数据!');   
       }   
     }


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



      


猜你喜欢
ThinkPHP自定义模板标签详解
wblog3.1.3_2升级说明
ThinkPHP普通分组下Widget的使用
如何让ThinkPHP的模板引擎达到最佳效率
WBlog博客前台独立栏目页的实现方法
WB3.1.2_2版本使用说明
封装ThinkPHP的一个文件上传方法
ThinkPHP3.1.2整合UCenter详解(四)
ThinkPHP3.1.2整合UCenter详解(二)
ThinkPHP3.1.2整合UCenter详解(一)
标签 : thinkphp UCenter
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/72.html,谢谢。
  • 评论
  • 赞助本站