ThinkPHP3.1.2整合UCenter详解(三)

来源:互联网 发布:苹果透视软件 编辑:程序博客网 时间:2024/04/29 19:46

在上一章中的ThinkPHP3.1.2整合UCenter详解(二)已经实现了通讯成功了!那么接下来我们的目标:

在thinkphp中会员注册成功时,UCenter Home也同时注册成功。
      首先在项目W3note入口文件index.php配置一个常量

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

1class 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,如

1public 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*/
06public 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的会员数据表,发现两张表都存相同的帐号,说明同步注册已经成功了!



本文首发志博客,欢迎转载!转载请注明本文地址,谢谢。          

本文地址:http://w3note.com/web/72.html        


0 0
原创粉丝点击