网站整合Ucenter详细流程

//网站整合Ucenter详细流程

网站整合Ucenter详细流程

第一步:下载安装UCenter,这里就不详细说了,网上很多教程

1.下载UCenter
下载地址:

2.安装UCenter

第二步:打开下载UCenter文件夹内的advanced文件夹,这里就是接口文件啦,里面的document就是接口的API说明,examples文件夹就是一些使用例子,按照这些例子会很快掌握你想要达到的效果,uc_client是接口文件。
第三步:从examples文件夹中复制include文件夹到你网站根目录,文件夹内包含一个文件叫db_mysql.class.PHP,这是连接数据库的类。

第四步:将uc_client文件夹整个复制到你网站根目录,uc_client之前说了是接口代码,现在根目录已经有include和uc_client两个文件夹了。

第五步:复制examples文件夹内的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’, ”);     // UCenter 数据库密码
define(’UC_DBNAME’, ‘ucenter’);    // UCenter 数据库名称
define(’UC_DBCHARSET’, ‘gbk’);    // UCenter 数据库字符集
define(’UC_DBTABLEPRE’, ‘ucenter.uc_’);   // UCenter 数据库表前缀

//通信相关
define(’UC_KEY’, ‘123456789′);    // 与 UCenter 的通信密钥, 要与 UCenter 保持一致
define(’UC_API’, ‘’); // UCenter 的 URL 地址, 在调用头像时依赖此常量
define(’UC_CHARSET’, ‘gbk’);    // UCenter 的字符集
define(’UC_IP’, ”);     // UCenter 的 IP, 当 UC_CONNECT 为非 mysql 方式时, 并且当前应用服务器解析域名有问题时, 请设置此值
define(’UC_APPID’, 1);     // 当前应用的 ID

 

//ucexample_2.php 用到的应用程序数据库连接参数
$dbhost = ‘localhost’;   // 数据库服务器
$dbuser = ‘root’;   // 数据库用户名
$dbpw = ”;    // 数据库密码
$dbname = ‘ucenter’;   // 数据库名
$pconnect = 0;    // 数据库持久连接 0=关闭, 1=打开
$tablepre = ‘example_’;     // 表名前缀, 同一数据库安装多个论坛请修改此处
$dbcharset = ‘gbk’;   // MySQL 字符集, 可选 ‘gbk’, ‘big5′, ‘utf8′, ‘latin1′, 留空为按照论坛字符集设定

//同步登录 Cookie 设置
$cookiedomain = ”;    // cookie 作用域
$cookiepath = ‘/’;   // cookie 作用路径

其中通讯密匙需要自己去已经安装好的UCenter系统中填写

登陆UCenter后点击左侧应用管理,右方有添加新应用,选择自定义安装,填写应用名称,应用的URL(就是config.inc.php文件所在目录,一般放在根目录,就是填),通讯密匙你喜欢随便填,应用类型选其他,开启同步登陆,接收通知

提交之后会生成一段应用的UCenter配置信息,复制这些配置信息覆盖到config.inc.php对应这部分的信息
配置信息这边就告一段落了,开始正式整合UCenter了

第七步:将以下代码加入到你需要使用到UCenter的地方(我是加到所有文件都包含的common.php里)

include_once ‘config.inc.php’;
include_once ‘include/db_mysql.class.php’;
$db = new dbstuff;
$db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
unset($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
include_once ‘uc_client/client.php’;

如此一来整合就完成了,你只需要加入你需要的接口函数即可通讯到UCenter,以下只介绍同步注册,登陆,退出,其他功能可以参考API

同步登陆BBS(这个版本我有改良到,做了自动激活):

list($uid, $username, $password, $email) = uc_user_login($_POST[‘username’], $_POST[‘pw’]);

//这里输入用户的用户名和密码

setcookie(’auth’, ”, -86400);
if($uid > 0) {
if(!$db->result_first(”SELECT count(*) FROM {$tablepre}members WHERE uid=’$uid’”)) {
//判断用户是否存在于用户表,不存在则跳转到激活页面
//$auth = rawurlencode(uc_authcode(”$username/t”.time(), ‘ENCODE’));
//echo ‘您需要需要激活该帐号,才能进入本应用程序<br><a href=”bbs/logging.php?example=register&action=activation&auth=’.$auth.’”>继续</a>’;
$tmp = $db->query(”select count(*) from {$tablepre}members where uid=”.$uid);
if(!($userNotexist = $db->result($tmp))){
$sql = “insert into {$tablepre}members (uid,username,email,groupid,timeoffset) values ({$uid},’{$username}’,'{$email}’,’10′,’9999′)”;
$sql = $db->query($sql);
$sql = “insert into {$tablepre}memberfields (uid) values ({$uid})”;
$sql = $db->query($sql);
}
}

 

 

//用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
setcookie(’auth’, uc_authcode($uid.”/t”.$username, ‘ENCODE’));
//生成同步登录的代码
$ucsynlogin = uc_user_synlogin($uid);

echo $ucsynlogin.’<br><a href=”‘.$_SERVER[‘PHP_SELF’].’”></a>’;

} elseif($uid == -1) {
// echo ‘用户不存在,或者被删除’;

}
}elseif($uid == -2) {
//echo ‘密码错’;
} else {
//echo ‘未定义’;
}

同步注册:

//同步注册ucenter
$uid = uc_user_register($_POST[‘username’], $_POST[‘password’], $_POST[’email’]);
if($uid <= 0) {
if($uid == -1) {
echo ‘用户名不合法’;
} elseif($uid == -2) {
echo ‘包含要允许注册的词语’;
} elseif($uid == -3) {
echo ‘用户名已经存在’;
} elseif($uid == -4) {
echo ‘Email 格式有误’;
} elseif($uid == -5) {
echo ‘Email 不允许注册’;
} elseif($uid == -6) {
echo ‘该 Email 已经被注册’;
} else {
echo ‘未定义’;
}
} else {

//同步登陆bbs
list($uid, $username, $password, $email) = uc_user_login($_POST[‘username’], $_POST[‘password’]);
setcookie(’auth’, ”, -86400);
if(!$db->result_first(”SELECT count(*) FROM {$tablepre}members WHERE uid=’$uid’”)) {
//判断用户是否存在于用户表,不存在则跳转到激活页面
//$auth = rawurlencode(uc_authcode(”$username/t”.time(), ‘ENCODE’));
// echo ‘您需要需要激活该帐号,才能进入本应用程序<br><a href=”bbs/logging.php?example=register&action=activation&auth=’.$auth.’”>继续</a>’;
$tmp = $db->query(”select count(*) from {$tablepre}members where uid=”.$uid);
if(!($userNotexist = $db->result($tmp))){
$sql = “insert into {$tablepre}members (uid,username,email,groupid,timeoffset) values ({$uid},’{$username}’,'{$email}’,’10′,’9999′)”;
$sql = $db->query($sql);
$sql = “insert into {$tablepre}memberfields (uid) values ({$uid})”;
$sql = $db->query($sql);
}
}
//用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
setcookie(’auth’, uc_authcode($uid.”/t”.$username, ‘ENCODE’));
//生成同步登录的代码
$ucsynlogin = uc_user_synlogin($uid);
echo $ucsynlogin.’<br><a href=”‘.$_SERVER[‘PHP_SELF’].’”></a>’;

//注册成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
// setcookie(’auth’, uc_authcode($uid.”/t”.$_POST[‘username’], ‘ENCODE’));
//echo ‘注册成功<br><a href=”‘.$_SERVER[‘PHP_SELF’].’”>继续</a>’;
}

 

同步退出:

//同步退出bbs
setcookie(’auth’, ”, -86400);
//生成同步退出的代码
$ucsynlogout = uc_user_synlogout();
echo ”.$ucsynlogout.’<br><a href=”‘.$_SERVER[‘PHP_SELF’].’”></a>’;

 

 

其它文章

http://www.360doc.com/content/15/0219/14/21869157_449422233.shtml

作者:|2018-09-15T13:37:57+00:00九月 15th, 2018|分类:ucenter|网站整合Ucenter详细流程已关闭评论

关于作者:

Hehe Da

This Is A Custom Widget

This Sliding Bar can be switched on or off in theme options, and can take any widget you throw at it or even fill it with your custom HTML Code. Its perfect for grabbing the attention of your viewers. Choose between 1, 2, 3 or 4 columns, set the background color, widget divider color, activate transparency, a top border or fully disable it on desktop and mobile.

This Is A Custom Widget

This Sliding Bar can be switched on or off in theme options, and can take any widget you throw at it or even fill it with your custom HTML Code. Its perfect for grabbing the attention of your viewers. Choose between 1, 2, 3 or 4 columns, set the background color, widget divider color, activate transparency, a top border or fully disable it on desktop and mobile.