您的位置:首页 > 编程语言 > PHP开发

ThinkPHP3.1.2整合UCenter详解(三)

2016-03-25 18:14 686 查看
在上一章中的ThinkPHP3.1.2整合UCenter详解(二)已经实现了通讯成功了!

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

首先在项目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的会员注册中成功注册一个会员时,也会成功注册UCenterHome的会员中心中。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的会员数据表,发现两张表都存相同的帐号,说明同步注册已经成功了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: