下载此文档

基于UC的PHP产品免激活整合.docx


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
该【基于UC的PHP产品免激活整合 】是由【zhangkuan1436】上传分享,文档一共【7】页,该文档可以免费在线阅读,需要了解更多关于【基于UC的PHP产品免激活整合 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。基于UC的PHP产品免激活整合
文//刘鹏
本文将以UUCentter、UUCHomme、Diiscuzz!、SuupeSiite为基基础进行讲讲解,文中中提及的方方法同样适适用于其它它非康盛产产品,只要要是通过UUCentter进行行整合的,都都可用文中中提到的方方法。下面面我就和大大家一起学学****一下吧吧。
一、安装产产品
安装UCeenterr的过程就就不必多讲讲了,大家家应该在无无数次的实实践中已经经可以做到到闭着眼装装了。所以以我们此步步略过。其其他产品的的安装才是是我们重点点要了解的的。
为了更快捷捷的完成产产品的安装装,UCeenterr(以下简简称UC)中中为我们提提供了应用用管理的功功能,每一一个产品对对于UC来来说,都是是一个应用用。
我们通过UUC提供的的应用管理理功能来安安装其他产产品。
我们在输入入框中输入入需要安装装的应用的的安装地址址,然后点点击安装。
点击安装按按钮之后我我们将进入入SupeeSitee的安装过过程,在安安装过程中中系统会自自动把UCC的信息获获取到,然然后写入相相应的表中中。整个流流程完成之之后,我们们返回应用用管理功能能,会看到到这样的信信息。
系统提示我我们安装了了那个应用用,访问地地址是什么么。然后通通信状态告告诉我们成成功。这种种情况下,我我们的SuupeSiite就安安装好了。其其他的应用用我们也按按照这个步步骤来安装装,需要注注意的是,我我们需要把把所有的应应用的数据据库都指向向同一个数数据库,当当然也可以以分开,但但是个人建建议合在一一起比较好好。
上图告诉我我们,三个个应用都已已经安装好好了,而且且通信都成成功,所以以目前三个个应用已经经可以实现现同步登陆陆了。
我们实际中中到网站中中去做测试试,我们在在SupeeSitee登陆后,我我们发现在在其他的应应用中我们们需要刷新新一次,然然后我们就就能看到我我们的个人人信息了。同同时我们发发现三个应应用的登陆陆已经同步步完成。
我们在任何何一个应用用中点击退退出,再到到其他应用用中刷新一一下,我们们会看到,所所有的应用用都已经是是未登陆状状态。至此此,最简单单的同步登登陆设置已已经完成。但但是本文所所要讲述的的,可不仅仅仅是这一一点点东西西哦,更进进一步的东东西,我们们慢慢道来来。
二、用户注注册
现在这种情情况下,我我们在不同同的应用进进行注册操操作,我们们会发现注注册后可以以在注册的的应用正常常登陆,如如果在SuupeSiite注册册,登录后后,我们去去访问Diiscuzz!,我们们会发现DDiscuuz!要求求我们进行行激活,点点击激活后后我们会进进行一次登登陆的操作作。此次登登陆操作结结束之后,我我们以后就就可以进行行正常的同同步登陆,而而不需要再再进行其他他操作了。
现在我们要要解决的就就是激活和和需要再登登录一遍的的问题。在在此之前,我我们需要了了解一下问问题产生的的原因。
我们要注意意下以下四四个表:
Cdb_mmembeers
Supe__membbers
Uchomme_meemberr
Uc_meemberrs
当我们在不不同的产品品的注册接接口进行注注册以后,都都会向ucc_memmberss和本产品品的memmberss表里写入入用户信息息,并不向向其他的用用户表写入入信息。而而已知的每每一个产品品都是可以以独立使用用的。也就就是说我们们需要向每每一个用户户表中写入入用户信息息。当然这这个信息不不能随便写写入,要遵遵守一定的的规则。
所有的用户户ID都应应该与UCC中的用户户ID一致致,从而达达到同步操操作。
有用户信息息关联表的的,要激活活关联表中中的信息。
除UC的密密码字段有有效外,其其他应用的的密码字段段无效。
统一用户验验证必须使使用UC的的接口,而而不是应用用本身的接接口。
//更新本地用户库
inserttable('member',$setarr,0,true);
//开通空间include_once(S_ROOT.'./source/');
$space=space_open($newuid,$username,0,$email);
我们将以UUCHomme为例进进行修改。
我们打开ssourcce/
//添加数据
functioninserttable($tablename,$insertsqlarr,$returnid=0,$replace=false,$silent=0){
global$_SGLOBAL;
$insertkeysql=$insertvaluesql=$comma='';
foreach($insertsqlarras$insert_key=>$insert_value){
$insertkeysql.=$comma.'`'.$insert_key.'`';
$insertvaluesql.=$comma.'\''.$insert_value.'\'';
$comma=',';
}
$method=$replace?'REPLACE':'INSERT';
$_SGLOBAL['db']->query($method.'INTO'.tname($tablename).'('.$insertkeysql.')VALUES('.$insertvaluesql.')',$silent?'SILENT':'');
if($returnid&&!$replace){
return$_SGLOBAL['db']->insert_id();
}
}
我们看到有有注释告诉诉我们更新新本地用户户库,也就就是说这个个方法是将将刚才的注注册信息写写入uchhome__membber表中中的地方。我我们需要做做的呢就是是把向SuupeSiite和DDiscuuz!中用用户表写入入数据的语语句放在这这里执行。
我们首先打打开souurce//funcctionn_commmon..php
//添加数据
functioninserttable($tablename,$insertsqlarr,$returnid=0,$replace=false,$silent=0,$db='uchome'){
global$_SGLOBAL;
$insertkeysql=$insertvaluesql=$comma='';
如上脚本所所示的这个个函数,我我们需要为为他做一个个小手术,让让他更符合合我们的要要求。
foreach($insertsqlarras$insert_key=>$insert_value){
$insertkeysql.=$comma.'`'.$insert_key.'`';
$insertvaluesql.=$comma.'\''.$insert_value.'\'';
$comma=',';
}
$method=$replace?'REPLACE':'INSERT';
if($db='uchome'){
$_SGLOBAL['db']->query($method.'INTO'.tname($tablename).'('.$insertkeysql.')VALUES('.$insertvaluesql.')',$silent?'SILENT':'');
}else{
$_SGLOBAL['db']->query($method.'INTO'.$tablename.'('.$insertkeysql.')VALUES('.$insertvaluesql.')',$silent?'SILENT':'');
}
if($returnid&&!$replace){
return$_SGLOBAL['db']->insert_id();
}
}
经过上面修修改之后,这这个函数就就可以为我我们提供便便捷的数据据库操作了了。
以后我们只只要按上图图的方法向向里面传参参数就可以以加入相应应的数据了了,至于$$setaarr这个个数组都有有什么,还还希望读者者自己去研研究,毕竟竟有可供参参考的了。//更新本地用户库
inserttable('member',$setarr,0,true);
//插入到states表中
inserttable('states',$setarr_states,0,true);
inserttable('supe_member',$setarr,0,true,0,'supesite'); //更新supesite用户库
inserttable('cdb_member',$setarr_cdb,0,false,0,'discuz'); //更新discuz用户库
现在我们也也只是实现现了一次注注册,所有有的应用都都可用,也也就是说我我们已经实实现了基于于UCHOOME的单单点注册登登陆,现在在注册完成成了,我们们还需要调调用一下全全局登陆的的方法。
我们通过实实际的操作作发现,注注册完成后后,。。
require_once('./uc_client/');
$login=uc_user_synlogin($_SGLOBAL['supe_uid']);
require_once(S_ROOT."./soure/space_{$do}.php");
我们在sppace..php的的最后加上上红圈中的的两行代码码,首先我我们要把UUC的操作作接口文件件加载进来来,然后调调用全局登登陆方法,把把当前用户户的ID传传过去。这这样以后,会会返回一个个字符串,我我们将其存存放在$lloginn这个变量量中。我们们需要把这这个字符串串输出才能能实现全局局登陆,如如果我们在在这里直接接echoo $loogin的的话,这个个字符串会会出现在页页面的最上上面一行,会会造成页面面的整体偏偏移,所以以我们将他他输出到我我们希望他他出现的地地方。
</script>
{$login}
</head>
我们选择在在<heaader>>标签结束束的时候输输出这行字字符串,这这样的话,页页面就不会会出现问题题,这行字字符串的具具体内容有有心的读者者请自己去去看吧。我我就不截图图给大家了了。
所有的操作作执行到现现在,我们们已经可以以在注册的的时候向各各个应用同同时写入用用户数据,避避免了激活活的操作;;同时我们们也调用了了全局登陆陆的方法,使使得注册成成功就可以以在各个应应用同时登登录。本文文的目的也也就达到了了。其中还还有一些技技巧和方法法在此留点点儿悬念,让让大家自己己去思考。
最后我们总总结一下,首首先我们需需要UC的的支持,让让所有的应应用在UCC下通信成成功,然后后去修改一一个应用的的注册文件件,在写入入数据库的的时候分别别向其他表表写入数据据,最后在在跳转的第第一个页调调用全局登登陆方法,。最最终实现共共同富裕(登登陆)。
好了,到这这里基本上上就说的差差不多了,最最后我要感感谢一下《草草根》杂志志这个平台台给我跟大大家交流的的机会,很很高兴认识识新朋友,咱咱们下期有有机会再见见。
刘鹏
PCTI13期学员,现供职于北京八维研修学院,任PHP讲师,项目经理。精通各种PHP开源产品的二次开发,对于OA与CRM有丰富的开发经验
《草根》官官方地址::httpp:///

基于UC的PHP产品免激活整合 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人zhangkuan1436
  • 文件大小179 KB
  • 时间2022-09-29