个人PHP项目与Ucenter整合(一)
今天研究了一天我个人的php项目与ucenter用户中心整合,从一开始的悲催,到后来的柳暗花明,现在来总结下我整合的步骤先:我弄的是ucenter1.6的gbk
1、先安装好你的个人项目和ucenter开源程序,设置虚拟的访问域名,假如我的项目访问地址为,http://my.ad.com ucenter的访问地址为http://my.ucenter.com
2、将你从官网上下载下来的ucenter源码解压缩出来的advanced\examples\api文件夹下的uc.php文件拷贝到你网站的根目录下的api文件夹中,若没有api则新建一个api文件夹(api文件夹一定要在网站的根目录中)
2、将你从官网上下载下来的ucenter源码解压缩出来的advanced\examples文件夹下的include文件夹拷贝到你项目的根目录。文件夹内包含一个文件叫db_mysql.class.php,这是连接数据库的类。
3、将uc_client文件夹整个复制到你网站根目录,uc_client之前说了是接口代码,现在根目录已经有include和uc_client两个文件夹了。
4、复制advanced\examples文件夹内的config.inc.php到你网站的根目录,这是配置UCenter的配置文件。
5、在ucenter后台中添加新应用,截图如下:
通信密钥自己设置,越复杂愈好。点击提交后,会在提交按钮下方生成一段应用的UCenter配置信息,将这段配置信息拷贝到第2步提到的uc.php文件的最上方,如红色部分,
代码如下:uc.php
<?php
define(‘UC_CONNECT‘, ‘mysql‘);
define(‘UC_DBHOST‘, ‘localhost‘);
define(‘UC_DBUSER‘, ‘root‘);
define(‘UC_DBPW‘, ‘root‘);
define(‘UC_DBNAME‘, ‘ucenter‘);
define(‘UC_DBCHARSET‘, ‘gbk‘);
define(‘UC_DBTABLEPRE‘, ‘`ucenter`.uc_‘);
define(‘UC_DBCONNECT‘, ‘0‘);
define(‘UC_KEY‘, ‘1234567890‘);
define(‘UC_API‘, ‘http://my.ucenter.com‘);
define(‘UC_CHARSET‘, ‘gbk‘);
define(‘UC_IP‘, ‘‘);
define(‘UC_APPID‘, ‘1‘);
define(‘UC_PPP‘, ‘20‘);
define(‘IN_DISCUZ‘, TRUE);
define(‘UC_CLIENT_VERSION‘, ‘1.5.0‘); //note UCenter 版本标识
define(‘UC_CLIENT_RELEASE‘, ‘20081031‘);
define(‘API_DELETEUSER‘, 1); //note 用户删除 API 接口开关
define(‘API_RENAMEUSER‘, 1); //note 用户改名 API 接口开关
define(‘API_GETTAG‘, 1); //note 获取标签 API 接口开关
define(‘API_SYNLOGIN‘, 1); //note 同步登录 API 接口开关
define(‘API_SYNLOGOUT‘, 1); //note 同步登出 API 接口开关
define(‘API_UPDATEPW‘, 1); //note 更改用户密码 开关
define(‘API_UPDATEBADWORDS‘, 1); //note 更新关键字列表 开关
define(‘API_UPDATEHOSTS‘, 1); //note 更新域名解析缓存 开关
define(‘API_UPDATEAPPS‘, 1); //note 更新应用列表 开关
define(‘API_UPDATECLIENT‘, 1); //note 更新客户端缓存 开关
define(‘API_UPDATECREDIT‘, 1); //note 更新用户积分 开关
define(‘API_GETCREDITSETTINGS‘, 1); //note 向 UCenter 提供积分设置 开关
define(‘API_GETCREDIT‘, 1); //note 获取用户的某项积分 开关
define(‘API_UPDATECREDITSETTINGS‘, 1); //note 更新应用积分设置 开关
define(‘API_RETURN_SUCCEED‘, ‘1‘);
define(‘API_RETURN_FAILED‘, ‘-1‘);
define(‘API_RETURN_FORBIDDEN‘, ‘-2‘);
同时按照这段配置信息更改第4步中说的config.inc.php文件里面相应的参数,使其与ucenter生成的配置信息保持一致。
代码如下:config.inc.php
<?php
define(‘UC_CONNECT‘, ‘mysql‘); // 连接 UCenter 的方式: mysql/NULL, 默认为空时为 fscoketopen()
// mysql 是直接连接的数据库, 为了效率, 建议采用 mysql
//数据库相关 (mysql 连接时, 并且没有设置 UC_DBLINK 时, 需要配置以下变量)
define(‘UC_DBHOST‘, ‘localhost‘); // UCenter 数据库主机
define(‘UC_DBUSER‘, ‘root‘); // UCenter 数据库用户名
define(‘UC_DBPW‘, ‘root‘); // UCenter 数据库密码
define(‘UC_DBNAME‘, ‘ucenter‘); // UCenter 数据库名称
define(‘UC_DBCHARSET‘, ‘gbk‘); // UCenter 数据库字符集
define(‘UC_DBTABLEPRE‘, ‘ucenter.uc_‘); // UCenter 数据库表前缀
//通信相关
define(‘UC_KEY‘, ‘1234567890‘); // 与 UCenter 的通信密钥, 要与 UCenter 保持一致
define(‘UC_API‘, ‘http://my.ucenter.com‘); // UCenter 的 URL 地址, 在调用头像时依赖此常量
define(‘UC_CHARSET‘, ‘gbk‘); // UCenter 的字符集
define(‘UC_IP‘, ‘‘); // UCenter 的 IP, 当 UC_CONNECT 为非 mysql 方式时, 并且当前应用服务器解析域名有问题时, 请设置此值
define(‘UC_APPID‘, 1); // 当前应用的 ID
define(‘UC_PPP‘, ‘20‘);
//ucexample_2.php 用到的应用程序数据库连接参数
$dbhost = ‘localhost‘; // 数据库服务器
$dbuser = ‘root‘; // 数据库用户名
$dbpw = ‘root‘; // 数据库密码
$dbname = ‘ucenter‘; // 数据库名
$pconnect = 0; // 数据库持久连接 0=关闭, 1=打开
$tablepre = ‘example_‘; // 表名前缀, 同一数据库安装多个论坛请修改此处
$dbcharset = ‘gbk‘; // MySQL 字符集, 可选 ‘gbk‘, ‘big5‘, ‘utf8‘, ‘latin1‘, 留空为按照论坛字符集设定
//同步登录 Cookie 设置
$cookiedomain = ‘‘; // cookie 作用域
$cookiepath = ‘/‘; // cookie 作用路径
以上步骤弄完后,回头再去看看你的ucenter后台,更新下缓存,再瞅瞅应用管理里面,看是不是已经通信成功了呢??我想应该是的。因为我就是这样弄的。搞了半天,弄得头都快晕了,最后终于搞定。
又一次体会到了:绝望过后就是希望。。。
现在只是搞定了通信这块,接下来还要具体实施同步登陆和注册等。亲们,一起加油啊。。。