基于UC的PHP产品免激活整合_第1页
基于UC的PHP产品免激活整合_第2页
基于UC的PHP产品免激活整合_第3页
基于UC的PHP产品免激活整合_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于UC的PHP产品免激活整合文/刘鹏本文将以UCenter、UCHome、Discuz !、SupeSite为基础进行讲解,文中提及的方法同样适用于其 它非康盛产品,只要是通过UCe nter 进行整合的,都可用文中提到的方法。下面我就和大家一起学习一下吧。一、安装产品安装UCenter 的过程就不必多讲了,大家应该在无数次的实践中已经可以做到闭着眼装了。所以我们 此步略过。其他产品的安装才是我们重点要了解的。为了更快捷的完成产品的安装,UCenter (以下简称 UC )中为我们提供了应用管理的功能,每一个产品对于UC来说,都是一个应用。我们通过UC提供的应用管理功能来安装其他产品。我们在

2、输入框中输入需要安装的应用的安装地址,然后点击安装。点击安装按钮之后我们将进入SupeSite的安装过程,在安装过程中系统会自动把UC的信息获取到,然后写入相应的表中。整个流程完成之后,我们返回应用管理功能,会看到这样的信息。系统提示我们安装了那个应用,访问地址是什么。然后通信状态告诉我们成功。这种 情况下,我们的SupeSite就安装好了。其他的应用我们也按照这个步骤来安装,需要注意 的是,我们需要把所有的应用的数据库都指向同一个数据库,当然也可以分开,但是个人 建议合在一起比较好。上图告诉我们,三个应用都已经安装好了,而且通信都成功,所以目前三个应用已经可以实现同步登陆 了。我们实际中到网

3、站中去做测试,我们在SupeSite登陆后,我们发现在其他的应用中我们需要刷新一次,然后我们就能看到我们的个人信息了。同时我们发现三个应用的登陆已经同步完成。我们在任何一个应用中点击退岀,再到其他应用中刷新一下,我们会看到,所有的应用都已经是未登陆 状态。至此,最简单的同步登陆设置已经完成。但是本文所要讲述的,可不仅仅是这一点点东西哦,更进一 步的东西,我们慢慢道来。二、用户注册现在这种情况下,我们在不同的应用进行注册操作,我们会发现注册后可以在注册的应用正常登陆,如果在SupeSite注册,登录后,我们去访问Discuz !,我们会发现 Discuz !要求我们进行激活,点击激活后我们会进行

4、一次登陆的操作。此次登陆操作结束之后,我们以后就可以进行正常的同步登陆,而不需要再进 行其他操作了。现在我们要解决的就是激活和需要再登录一遍的问题。在此之前,我们需要了解一下问题产生的原因我们要注意下以下四个表:Cdb_membersSupe_members Uchome_member Uc_members当我们在不同的产品的注册接口进行注册以后,都会向uc_members 和本产品的 members 表里写入用户信息,并不向其他的用户表写入信息。而已知的每一个产品都是可以独立使用的。也就是说我们需要向 每一个用户表中写入用户信息。当然这个信息不能随便写入,要遵守一定的规则。所有的用户ID都应

5、该与UC中的用户ID 一致,从而达到同步操作。 有用户信息关联表的,要激活关联表中的信息。除UC的密码字段有效外,其他应用的密码字段无效。统一用户验证必须使用 UC的接口,而不是应用本身的接口。/嘰聃習到'有摯释告诉°我们,更朗/ 开通空间 include_once(S_ROOT.'./source/functic.uchome_member_表中的地万。我们需要做的呢就是把向$space我们将以UCHome为例进行修改库,也就是说这个方法是将刚才的注册信息写入(S ROOT .'./source/function space.php'上向 SupeS

6、ite和Discuz !中用户表写入数据的语句I $space = space open( $newuid , $username , 0, $email );放在这里执行。一/添加数据' function inserttable ($tablename , $insertsqlarr , $returnid =0 , $replace = false , $silent =0 ) global $_SGLOBAL ;I_$insertkeysql = $insertvaluesql = $comma = ”;iIforeach ($insertsqlarr as $insert_ke

7、y => $insert_value ) I$insertkeysql .= $comma .'、 . $insert_key .'、;1$insertvaluesql .= $comma .''' .$insert_value . '''I$comma =','iI-$method= $replace ?'REPLACE' :'INSERT'$_SGLOBAL 'db' -> query ($method .' INTO ' . tnam

8、e( $tablename ).' (' . $insertkeysql .') VALUES l_('.$insertvaluesql .')' , $silent ?'SILENT':'');iif ($returnid && ! $replace ) 'return $_SGLOBAL 'db' -> insert_id ();i l我们首先打开 source/fu ncti on _com mon .php/ 添数breach($insertsqlarr as

9、$insert_key => $insert_value ) functioninserttaeitkey(s$|tlablenamecom manserteqlOiiinselkeeturnid ; =0 , $replace = false , $silent =0 ,$db ='uchome'$ir)sertvaluesql.= $comma .''' .$insert_value .'''global $($_®maOBAL','$insertkeysql = $insertvaluesql

10、 = $comma =''$method = $replace ?'REPLACE' :'INSERT'if ($db = 'uchome' )$ SGLOBAL'db'-> query ($method .' INTO ' .tname( $tablename ).' (' . $insertkeysql .')VALUES (' .$insertvaluesql.')',$silent ?'SILENT':''

11、); else $ SGLOBAL'db'-> query ($method .' INTO ' .$tablename .' (' .$insertkeysql .') VALUES('.$insertvaluesql .')' , $silent ?'SILENT':'');if ($returnid && !$replace ) return $_SGLOBAL 'db' -> insert_id ();如上脚本所示的这个函数,我们需

12、要为他做一个小手术,让他更符合我们的要求经过上面修改之后,这个函数就可以为我们提供便捷的数据库操作了。/更新本地用户库inserttable( 'member' , $setarr , 0, true );/插入到states表中inserttable( 'states' , $setarr_states , 0, true );inserttable('supe_member', $setarr , 0, true ,0 ,'supesite' );/ 更新 supesite 用户库inserttable('cdb_me

13、mber', $setarr_cdb, 0 ,false ,0,'discuz' ); / 更新 discuz 用户库i二7.以后我们只要按上图的方法向里面传参数就可以加入相应的数据了,至于$setarr这个数组都有什么,还希望读者自己去研究,毕竟有可供参考的了现在我们也只是实现了一次注册,所有的应用都可用,也就是说我们已经实现了基于UCHOME 的单点注册登陆,现在注册完成了,我们还需要调用一下全局登陆的方法。我们通过实际的操作发现,注册完成后,space.php 做文章。UCHome会自动跳向 space.php所以接下来我们就要在re once('./uc

14、_client/client.php' );sephpnlogi的最后加SGMBAL勺两行代码d'首先我们要把接口文件加载进来,然后$logi n 这个echo $login的话,这个字调用全局登陆方法,把当ROO户的./soure/D)a传过去。这样以后,p"会返回一个字符串,我们将其存放在 变量中。我们需要把这个字符串输出才能实现全局登陆,如果我们在这里直接符串会岀现在页面的最上面一行,会造成页面的整体偏移,所以我们将他输岀到我们希望他岀现的地方。我们选择了 header.htmIv/script>$login</head>我们选择在<header>标签结束的时候输岀这行字符串,这样的话,页面就不会岀现问题,这行字符串 的具体内容有心的读者请自己去看吧。我就不截图给大家了。所有的操作执行到现在,我们已经可以在注册的时候向各个应用同时写入用户数据,避免了激活的操作;同时我们也调用了全局登陆的方法,使得注册成功就可以在各个应用同时登录。本文的目的也就达到了。其 中还有一些技巧和方法在此留点儿悬念,让大家自己去思考。最后我们总结一下,首先我们需要UC的支持,让所有的应用在UC下通信成功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论