找回密码
 会员注册
查看: 536|回复: 0

UC整合其他PHP项目范例,有注释

[复制链接]

1389

主题

5

回帖

496万

积分

管理员

积分
4962986
发表于 2023-1-9 18:10:59 | 显示全部楼层 |阅读模式
第一步:打开下载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的各种参数,

  1. define('UC_CONNECT','mysql');//连接UCenter的方式:mysql/NULL,默认为空时为fscoketopen()
  2. //mysql是直接连接的数据库,为了效率,建议采用mysql
  3. //数据库相关(mysql连接时,并且没有设置UC_DBLINK时,需要配置以下变量)
  4. define('UC_DBHOST','localhost');//UCenter数据库主机
  5. define('UC_DBUSER','root');//UCenter数据库用户名
  6. define('UC_DBPW',"");//UCenter数据库密码
  7. define('UC_DBNAME','ucenter');//UCenter数据库名称
  8. define('UC_DBCHARSET','gbk');//UCenter数据库字符集
  9. define('UC_DBTABLEPRE','ucenter.uc_');//UCenter数据库表前缀
  10. //通信相关
  11. define('UC_KEY','123456789′);//与UCenter的通信密钥,要与UCenter保持一致
  12. define('UC_API','http://yourwebsite/uc_server');//UCenter的URL地址,在调用头像时依赖此常量
  13. define('UC_CHARSET','gbk');//UCenter的字符集
  14. define('UC_IP',"");//UCenter的IP,当UC_CONNECT为非mysql方式时,并且当前应用服务器解析域名有问题时,请设置此值
  15. define('UC_APPID',1);//当前应用的ID
  16. //ucexample_2.php用到的应用程序数据库连接参数
  17. $dbhost='localhost';//数据库服务器
  18. $dbuser='root';//数据库用户名
  19. $dbpw='';//数据库密码
  20. $dbname='ucenter';//数据库名
  21. $pconnect=0;//数据库持久连接0=关闭,1=打开
  22. $tablepre='example_';//表名前缀,同一数据库安装多个论坛请修改此处
  23. $dbcharset='gbk';//MySQL字符集,可选'gbk','big5′,'utf8′,'latin1′,留空为按照论坛字符集设定
  24. //同步登录Cookie设置
  25. $cookiedomain="";//cookie作用域
  26. $cookiepath='/';//cookie作用路径
复制代码
其中通讯密匙需要自己去已经安装好的UCenter系统中填写

登陆UCenter后点击左侧应用管理,右方有添加新应用,选择自定义安装,填写应用名称,应用的URL(就是config.inc.php文件所在目录,一般放在根目录,就是填http://www.***.com),通讯密匙你喜欢随便填,应用类型选其他,开启同步登陆,接收通知
提交之后会生成一段应用的UCenter配置信息,复制这些配置信息覆盖到config.inc.php对应这部分的信息

*************************************************************************

*******************有很多人这一步搞错。不知道为什么*****************************

*************************************************************************

配置信息这边就告一段落了,开始正式整合UCenter了



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

  1. include_once 'config.inc.php';
  2. include_once 'include/db_mysql.class.php';
  3. $db= new dbstuff;
  4. $db->connect($dbhost,$dbuser,$dbpw,$dbname,$pconnect);
  5. unset($dbhost,$dbuser,$dbpw,$dbname,$pconnect);
  6. include_once 'uc_client/client.php';
复制代码
 如此一来整合就完成了,你只需要加入你需要的接口函数即可通讯到UCenter,以下只介绍同步注册,登陆,退出,其他功能可以参考API同步登陆BBS:

登陆:
  1. //这里输入用户的用户名和密码
  2. list($uid,$username,$password,$email) = uc_user_login($_POST['username'],$_POST['pw']);

  3. if($uid>0){
  4.     //用户登陆成功,设置Cookie,加密直接用uc_authcode函数,用户使用自己的函数
  5.     //我这里并没有自己的user表。如果有的话要做一些判断
  6.     //生成同步登录的代码
  7.     $ucsynlogin=uc_user_synlogin($uid);
  8.     /**
  9.     *$ucsynlogin 这就是同步登录的代码,你可以打印下这个代码,你就可以看到,你ucenter有几个应用,他就会 生成多少个js代码,而这些代码就是去通知其他站点同步登录的,所以这些代码需要在页面上面执行才能实现同步登录功能。代码修改完了之后,你需要把 ucenter后台应用里面的同步登录和同步退出选择上
  10.     **/
  11. }elseif($uid==-1){
  12.     //echo '用户不存在,或者被删除';
  13. }
  14. }elseif($uid==-2){
  15.     //echo '密码错';
  16. }else{
  17.     //echo '未定义';
  18. }
复制代码
用户注册

  1. $uid=uc_user_register($_POST['username'],$_POST['password'],$_POST['email']);
  2. if($uid<=0){
  3.     if($uid==-1){
  4.         echo '用户名不合法';
  5.     }elseif($uid==-2){
  6.         echo '包含要允许注册的词语'
  7.     }elseif($uid==-3){
  8.         echo '用户名已经存在';
  9.     }elseif($uid==-4){
  10.         echo 'Email格式有误';
  11.     }elseif($uid==-5){
  12.         echo 'Email不允许注册';
  13.     }elseif($uid==-6){
  14.         echo '该Email已经被注册';
  15.     }else{
  16.         echo '未定义';
  17.     }
  18. }else{
  19. //注册成功
  20. //我应用没有自己的user表所以直接登陆
  21. //如果应用有自己的user表这里也要插入用户注册信息
  22. }
复制代码
退出
  1. //同步退出bbs//生成同步退出的代码
  2. $ucsynlogout = uc_user_synlogout();
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-24 09:23 , Processed in 0.274196 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表