文档章节

ThinkPHP3.1.2整合UCenter详解(一)

BearCatYN
 BearCatYN
发布于 2014/06/23 18:37
字数 1803
阅读 2200
收藏 5

最近应公司的要求,要开发一个有点像QQ空间那样的会员管理中心网站,发现UCenter的很多功能酷似QQ空间,于是选择了UCenter作为程序的会员管理中心。前台嘛就选择我之前基于ThinkPHP3.1.2框架开发的WBlog好了。但是问题又来了:要求在WBlog前台注册的会员登录时要与UCenter同步,这就是我这次要解决的问题--ThinkPHP与UCenter的整合。


      我在网上搜索了一下,ThinkPHP与UCenter的整合并不少,但是似乎越看越觉得头晕,不是少这就是少那,到头来差之毫厘,谬以千里,真够折腾的。我仔细阅读了UCenter的开发文档后,经过多次的调试,终于完成了ThinkPHP与UCenter的整合。感觉这个结果是从苦水里泡出来的一样,呵呵。。。现在网菠萝果把整合的记录分享给需要的童鞋。


      温馨提示:在thinphp与UCenter整合中,您需要的基本条件是,有一定的PHP基础,对ThinkPHP框架有所了解,会布署目录和配置数据。


     好了,我们开始吧!

 

下载并安装下面的程序


      WBlog3.1.2
      UCenter_Home_2.0_SC_UTF8
      UCenter 1.6.0

 

安装WBlog博客程序


     在写本文之前,已发布的WBlog博客程序还没有会员中心,本次测试的会员中心是后面才写的。如果你能等的话要待我整理好WBlog的会员中心程序才发布,不能等的话也不会影响下面的程序整合,因为你可以找或者自己写简单的满足以下两个条件的thikphp程序:

1、可以注册会员
2、可以登录和退出。

这里我就使用WBlog3.1.2了。在服务器的根目录新建目录wblog1,把下载的WBlog3.1.2解压得到的WBlog目录里的所有文件复制到wblog1。在浏览器输入http://127.0.0.1/wblog1/install/,安装WBlog3.1.2。
温馨提示:在整合时最容易搞错的就是路径问题,在接下来的整合操作的根目录都是指wblog1目录,所以要和服务器根目录区别开来。

 

安装UCenter 1.6.0(简体UTF-8)


     这个程序到官方去下载吧。在网站根目录wblog1新建 ucenter 目录,解压UCenter 1.6.0,把解压得到的upload目录里的所有文件复制到刚才新建的ucenter目录里。在浏览器输入http://127.0.0.1/wblog1/ucenter/install/,安装UCenter 1.6.0。

 

安装UCenter_Home_2.0_SC_UTF8(简体中文版)


在网站根目录wblog1新建 uh目录并解压UCenter_Home_2.0_SC_UTF8,把解压得到的upload目录里的所有文件复制到刚才新建的uh目录里。在浏览器输入http://127.0.0.1/wblog1/uh/install/,安装UCenter_Home_2.0_SC_UTF8。


需要注意的是,安装UCenter 1.6.0和UCenter_Home_2.0_SC_UTF8时顺序不能颠倒,否则无法安装。


在ThinkPHP3.1.2整合UCenter详解(一) 中我们安装完了WBlog3.1.2、UCenter_Home_2.0_SC_UTF8和UCenter 1.6.0三个程序后。

接下来接着上一篇讲。

找到下载的UCenter 1.6.0,把 advanced 目录里面的uc_client 和 examples下面的api 文件夹复制到网站根目录wblog1下,和ThinkPHP在同一目录。找到项目W3note的配置文件夹wblog1/ Conf/,在其新建一个UCenter的配置文件 config_ucenter.php ,然后在WBlog1\W3note\Lib\ORG目录下新建一个UCenter的通讯处理类文件UcService.class.php,我们先不要管文件里面写什么代码,后面将会讲到。好了到这里已经把后面要操作的目录和文件都布局好了。

为了理清目录和文件之间的层次关系,我把目录和文件制成目录树列出来:
wblog1根目录
|  –  index.php//前台入口文件
|  –  admin.php
|  –  W3note//前台项目
|           |  – Lib
|           |       |  – ORG
|           |       |       |  –UcService.class.php //UCenter的通讯处理类文件
|           |  – Conf//W3note项目的配置目录
|           |       |  –config_ucenter.php //UCenter的配置文件
|           |
|  –  Admin
|  –  ThinkPHP //thinkphp3.1.2核心包和一些扩展
|  –  install
|  –  api  
|       | –  uc.php
|
|  –  uc_client
|  –  ucenter
|  –  uh  
这样我们就可以一目了然了。

     现在开始api目录里面的uc.php 配置了,首先打开这个文件,找到36行的位置这一行代码
1
require_once DISCUZ_ROOT.'./config.inc.php';

 把'./config.inc.php'这一部分替换成'./W3note/Conf/config_ucenter.php'
 往下找还会看到几处的'./config.inc.php',按照上面的操作全部替换掉。这样做目的是把前面建的配置文件config_ucenter.php导进来。  接下来我登录http://127.0.0.1/wblog1/ucenter,在打开左边菜单“应用管理”这一项,然后添加一个新应用,这时我们发现好多东西要填!

     照着下面操作就是了。先看应用类型,因为这是我们自己开发的程序,所以就选其它吧,再看应用名称,随便填,只要不超过20字节就行了,我这里填wblog。接下来是应用的主URL,这里填网站的主页http;//127.0.0.1/wblog1,注意了,后面没有“/”。至于应用的其他URL还有应用IP这两项就跳过,不用管它了。接下来是通信密钥,就按其旁边的提示填就是了,我这里填abc123456。往下是应用的物路径,提示说默认为空,那就留空吧,还有查看个人资料页面地址也留空吧。接下来是应用接口文件名称,默认为uc.php,保持原状吧。继续往下看,标签单条显示模板还有标签模板标记说明这两项也不用理它,跳过。是否开启同步登录,选是;是否接受通知也选是吧。终于填完了,那就点击提交吧!

     还记得前面在uc.php导入的文件config_ucenter.php吗,里面可是一片空白啊,现在我们就来放些配置信息进去。刚才我们填好的信息提交后,会在提交按钮下面的“应用的UCenter配置信息”下面生成了一些配置信息,我们直接把它复制,然后粘帖到config_ucenter.php,保存。

      网上很多教程到这里就表示通信成功了,在这里我非常惊讶!因为通信并未成功!我在这里折腾了一些时间,后来仔细检了uc.php文件的代码,发现59行:
1
require_once DISCUZ_ROOT.'./include/db_mysql.class.php';

我在布局的目录中始终找不到db_mysql.class.php,后来发现db_mysql.class.php存UCenter_1.6.0_SC_UTF8\advanced\examples\include目录中,这就是问题所在!因为我们之前复制的只是UCenter_1.6.0_SC_UTF8\advanced\examples\中的api文件。
解决这一问题的办法就是把上面的代码修改为
1
require_once DISCUZ_ROOT.'./uc_client/lib/db.class.php';

导入的数据库类文件变了,那么我们也要对其所涉及的内容作相应的修改,在uc.php59行的下面如
1
$GLOBALS['db'] = new dbstuff;
2
$GLOBALS['db']->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, true, $dbcharset);
3
$GLOBALS['tablepre'] = $tablepre;

修改为
1
$GLOBALS['db'] = new ucclient_db;
2
$GLOBALS['db']->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCONNECT, true, UC_DBCHARSET);
3
$GLOBALS['tablepre'] = UC_DBTABLEPRE;//关键

上面数据库的链接信息的静态变量来自config_ucenter.php。
      好了,我们回到后台ucenter刷新一下页面,发现什么---通信成功了!
      如果按上面的操作还未通信成功的,请留言,有空我会回复!



 

本文转载自:http://w3note.com/web/70.html

共有 人打赏支持
BearCatYN
粉丝 26
博文 158
码字总数 11947
作品 0
朝阳
程序员
ThinkPHP3.1.2整合UCenter详解(一)

最近应公司的要求,要开发一个有点像QQ空间那样的会员管理中心网站,发现UCenter的很多功能酷似QQ空间,于是选择了UCenter作为程序的会员管理中心。前台嘛就选择我之前基于thinkphp3.1.2框架...

网菠萝果
2013/01/22
0
1
ThinkPHP3.1.2整合UCenter详解(二)

在ThinkPHP3.1.2整合UCenter详解(一) 中我们安装完了WBlog3.1.2、UCenterHome2.0SCUTF8和UCenter 1.6.0三个程序后。接下来接着上一篇讲。找到下载的UCenter 1.6.0,把 advanced 目录里面的 ...

网菠萝果
2013/01/30
0
1
DedeCMS+ucenter+uchome同步登录退出整合教程

现在已经完成了dedecms、ucenter、uchome的安装了现在就把dedecms及uchome通过ucenter整合到一起以实现资源整合并且两个网站的会员要实现同步登录及退出! 1.通过浏览器访问 http://127.0.0...

杨强易
2012/06/13
0
0
JAVA项目单点登录Discuz

一、需求分析 有个JAVA项目与一个Discuz论坛需要整合,使得它们之间能实现单点登录功能。可是Discuz是PHP写的,两者语言不通该如何整合呢?查阅官方资料发现,Discuz并未开放说有什么用户接口...

qllinhongyu
2015/02/16
0
0
有会用ucenter整合qq的吗

有会用ucenter整合qq的吗 步骤如何? 有会用ucenter整合qq的吗 步骤如何? 有会用ucenter整合qq的吗 步骤如何?

hongye
2012/10/08
746
2

没有更多内容

加载失败,请刷新页面

加载更多

中国移动蔡谦:5G传输准备就绪

目前5G已成业界热议话题,在即将到来的万物互联时代,5G是非常关键的技术。且5G相比4G,业务场景多种多样,对5G承载网带来巨大挑战。5G传输,承载先行并不仅仅是一个口号。当前5G承载网的部署...

linux-tao
20分钟前
4
0
维护“修理权”,苹果使用专有软件工具来修复MacBook Pro和iMac Pro

根据上月发给苹果授权服务提供商的一份文件,苹果公司正在使用新的专有软件诊断工具来修复MacBook Pros和iMac Pros,如果不用专有软件工具来修复关键部件,将会导致“系统失效和修复不完整”...

linuxCool
50分钟前
2
0
cacti监控安装

cacti是用PHP实现的一个软件,它用snmp服务获取数据,然后用rrdtool存储和更新数据,并生成图表展示。比较适合用于交换机、路由器的网络监控,插件众多,可图示化显示网络状况。 cacti官方推...

hiwill
今天
4
0
shell特殊符号、cut、sort、uniq、wc、tee、tr、split命令

10月15日任务 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 cut 命令 cut作用:截取字符串 用法如下:cat /etc/passwd |head -2 |cut -d ...

hhpuppy
今天
4
0
Springboot实现filter拦截token验证和跨域

背景 web验证授权合法的一般分为下面几种 1使用session作为验证合法用户访问的验证方式 使用自己实现的token 使用OCA标准 在使用API接口授权验证时,token是自定义的方式实现起来不需要引入其...

funnymin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部