PHP项目和UC整合,简单范例,包含注释
您好,请按照如下操作开始:
第一步:打开下载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的各种参数,
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','http://yourwebsite/uc_server');//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文件所在目录,一般放在根目录,就是填http://www.***.com),通讯密匙你喜欢随便填,应用类型选其他,开启同步登陆,接收通知
提交之后会生成一段应用的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']); if($uid>0){ //用户登陆成功,设置Cookie,加密直接用uc_authcode函数,用户使用自己的函数 //我这里并没有自己的user表。如果有的话要做一些判断 //生成同步登录的代码 $ucsynlogin=uc_user_synlogin($uid); /** *$ucsynlogin 这就是同步登录的代码,你可以打印下这个代码,你就可以看到,你ucenter有几个应用,他就会 生成多少个js代码,而这些代码就是去通知其他站点同步登录的,所以这些代码需要在页面上面执行才能实现同步登录功能。代码修改完了之后,你需要把 ucenter后台应用里面的同步登录和同步退出选择上 **/ }elseif($uid==-1){ //echo '用户不存在,或者被删除'; } }elseif($uid==-2){ //echo '密码错'; }else{ //echo '未定义'; }
用户注册
$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{ //注册成功 //我应用没有自己的user表所以直接登陆 //如果应用有自己的user表这里也要插入用户注册信息 }
退出
//同步退出bbs//生成同步退出的代码 $ucsynlogout = uc_user_synlogout();
今天我朋友配置ucenter时出现了一个小问题。注册时用户的密码 他都是经过 处理的 导致其它的ucenter应用都登陆不了
浙公网安备 33010602011771号