zoukankan      html  css  js  c++  java
  • 网站整合Ucenter详细流程

    最近公司项目要用到SNS,在具体采取解决方案上面由于项目由一实力较强的外包公司做,所以没有采用商业解决方案.不过本人一直比较看好康盛的产 品,因为被外派到外包公司去负责项目,尽管以前用的SNS也在不少,也曾对SNS进行过插件开发以及整合,不过还真没彻底搞透UCenter的灵活应用. 这不找了一些资料研究研究.听说最近UCHome都上2.0了,好像上半年还用的是1.5的呢...                     武汉百度公司
     
           PS:感觉博客里面加点图片装饰一下还是挺好看的....
     
           原文地址:?p=44
     
    第一步:下载安装UCenter,这里就不详细说了,网上很多教程
     
    1.下载UCenter
    下载地址:
     
    2.安装UCenter
    图文安装教程:?tid=897809
     
    第二步:打开下载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>’;
     
     
     
    也许会有些代码会贴错或写错,所以以上只供参考,如果有什么地方不明白,请回复或Email我

  • 相关阅读:
    java版扫雷
    隔离级别
    Servlet Analysis
    Session&Cookie
    centos上部署应用到tomcat
    在CentOS 7中安装与配置Tomcat-8.5方法
    centos7中安装、配置jdk(转载)
    java RE Validation常用
    hello2 source Analysis
    serlvet中的过滤器filter
  • 原文地址:https://www.cnblogs.com/bluealine/p/5740693.html
Copyright © 2011-2022 走看看