在ThinkPHP3.1.2整合UCenter详解(一) 中咱们安装完了WBlog3.1.二、UCenter_Home_2.0_SC_UTF8和UCenter 1.6.0三个程序后。接下来接着上一篇讲。找到下载的UCenter 1.6.0,把 advanced 目录里面的 php
uc_client 和 examples下面的api 文件夹复制到网站根目录wblog1下,和ThinkPHP在同一目录。找到项目W3note的配置文件夹wblog1/ Conf/,在其新建一个UCenter的配置文件 config_ucenter.php ,而后在WBlog1\W3note\Lib\ORG目录下新建一个UCenter的通信处理类文件UcService.class.php,咱们先不要管文件里面写什么代码,后面将会讲到。好了到这里已经把后面要操做的目录和文件都布局好了。为了理清目录和文件之间的层次关系,我把目录和文件制成目录树列出来: html
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 mysql
这样咱们就能够一目了然了。 web
如今开始api目录里面的uc.php 配置了,首先打开这个文件,找到36行的位置这一行代码 sql
1 | require_onceDISCUZ_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,在打开左边菜单“应用管理”这一项,而后添加一个新应用,这时咱们发现好多东西要填! thinkphp
照着下面操做就是了。先看应用类型,由于这是咱们本身开发的程序,因此就选其它吧,再看应用名称,随便填,只要不超过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行: api
1 | require_onceDISCUZ_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_onceDISCUZ_ROOT.'./uc_client/lib/db.class.php'; |
导入的数据库类文件变了,那么咱们也要对其所涉及的内容做相应的修改,在uc.php59行的下面如
1 | $GLOBALS['db'] =newdbstuff; |
2 | $GLOBALS['db']->connect($dbhost,$dbuser,$dbpw,$dbname,$pconnect, true,$dbcharset); |
3 | $GLOBALS['tablepre'] =$tablepre; |
修改成
1 | $GLOBALS['db'] =newucclient_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刷新一下页面,发现什么---通讯成功了!
若是按上面的操做还未通讯成功的,请留言,有空我会回复!
本文首发网志博客,欢迎转载!转载请注明本文地址,谢谢。