ThinkPHP3.1.2整合UCenter详解

合集下载

ucenter整合原理和流程

ucenter整合原理和流程

首先讲解UCenter的基本概念。

大家不要插话,我开始了啊。

呵呵uc 是comsnez公司退出的一个用户整合方案包括server、client两个端。

server端负责接受client端发起的请求,并给出相应的处理。

client端是封装了一些server提供的接口的函数。

通过这些函数来调用server提供的接口。

具体client封装了那些接口,以及接口的使用方法,大家可以参考uc下载包里的readme,有详细的解释。

client端和server的通信全部通过这些client.php封装的函数来完成。

以上内容大家有不明白的吗?下面是提问时间。

这只是基础的一个概念,估计大家都能明白。

一般整合uc的时候都需要client.php和uc.php这两个东西。

client.php上面说过了。

是主动想server端发起请求的接口封装函数。

那么uc.php刚好相反,这里uc.php他是最为一个server的,他接受uc_server发起的请求和用户浏览器直接发起的请求。

这样对于整合uc来说就实现了server和client双向通信。

而不是单一的client发起,server 接受。

那么uc.php在什么情况下会被请求到,或者说他主要负责处理什么事情呢?打开打开dz6.1以及以上的版本的uc.php(api/uc.php)可以看到下面有很多处理方法。

逐一看一下就明白了。

我大概讲一下。

uc.php会接受uc_server发给他的通知。

这些通知大概有用户改名、用户改密码、用户被删除、还有一些其他的。

另外一个最重要的是uc.php会接收用户浏览器发起的同步登录、退出请求。

uc.php在接收到这个请求的时候会把当前浏览器设置为登录或者退出状态。

这就是同步登录和退出最重要的一个环节。

那么浏览器是在什么情况下会发起这个同步登录的请求呢?打开uc的readme文档。

我么可以找到一个同步登录的接口。

这个接口会在用户登录的时候,帐号密码验证成功以后被调用。

tp与uc,discuz整合问题

tp与uc,discuz整合问题

UCenter 和ThinkPHP同步注册问题一、在项目中建立文件夹,如uc_con二、在discuz论坛的寻找文件1、论坛目录下的config.inc.php2、论坛目录下的uc_client里面的所有内容3、将config.inc.php 和uc_client文件夹都复制到uc_con 中三、建立测试文件在uc_con中建立文件test.phptest.php文件的内容<?require ("config.inc.php");require ("uc_client/client.php");$uid = uc_user_register('11111', 'admin', '111@');if($uid<=0){switch($uid){case -1:echo "用户名不合法!";break;case -2:echo "包含不允许注册的词语!";break;case -3:echo "用户名已存在!";break;case -4:echo "Email 格式错误!";break;case -5:echo "Email 不允许注册!";break;case -6:echo "Email 已被注册!";break;default:echo "网络错误,请稍后重试!";}}else{echo "注册成功!";}?>四、如果是ThinkPHP调用的话,会存在类冲突问题更改方法:1、更改db类更改uc_client/lib/db.class.php第11行将class db { 改为class uc_db {更改uc_client/model/base.php第73行将$this->db = new db(); 改为$this->db = new uc_db();2、更改base类更改uc_client/model/base.php第24行将class base { 改为class uc_base {更改所有继承自base类的文件uc_client/control/下所有的php文件这些文件有:app.phpcache.phpdomain.phpfeed.phpfriend.phpmail.phppm.phptag.phpuser.php将extends base { 改为extends uc_base {如果以上修改还是不行,那就请把model和control中所有类中的构造函数全部删除ThinkPHP 和UCenter接口的冲突1、引出问题在UCenter中存在db和base两个类,恰巧这两个类也存在于ThinkPHP中,因此出现问题是必然的事情。

ShopNC多用户商城系统 1.2 版本之“ UCenter整合”功能说明

ShopNC多用户商城系统 1.2 版本之“ UCenter整合”功能说明

ShopNC多用户商城系统1.2版本之“Ucenter整合”说明
以最新的Discuz! X2版本为参考,先分别按正常步骤装完两个系统(已有的系统可以直接添加应用)。

程序编码注意:如果Ucenter使用的是utf8,则商城的也要用utf8的,如果用gbk版的就会出问题。

一、在Ucenter中添加商城应用
注意:URL地址要写正确,通信密钥只要两个系统一致就行。

二、在商城系统后台填上Ucenter的相关配置信息
建议在使用前就整合,因为整合成功后,原系统中的会员将不能再登录,都以Ucenter 的为主。

三、通信成功
在商城填完信息后就能在Ucenter中看到“通信成功”提示,说明整合完成。

如果出现了不能同步登录问题,可以在论坛的后台更新缓存。

Destoon(PH版本B2B)会员整合UcenterDiscuz! PHPWind教程

Destoon(PH版本B2B)会员整合UcenterDiscuz! PHPWind教程

Destoon(PHP版本B2B)会员整合Ucenter/Discuz!/PHPWind教程操作方法如下:首先进入Destoon网站后台-〉会员管理-〉模块设置-〉会员整合假如需要整合的主站地址为论坛为1、整合Ucenter进入Ucenter管理-〉添加新应用选择安装方式选择自定义安装应用名称填写Destoon应用的URL 填写通信密钥自行设定建议字母和数字组合应用类型选择其他是否开启同步登录选择是是否接受通知选择是- 提交备注:a. 未涉及选项,保持默认即可b. Destoon端未设置前会提示通信失败,先忽略进入Destoon网站后台-〉会员管理-〉模块设置-〉会员整合- 启用会员整合选择Ucenter- API 地址填写Ucenter的安装地址(默认为/uc_server,注意具体地址可以在ucenter 应用的UCenter 配置信息里面的define('UC_API')一行看到)- 主机IP 填写 IP 或留空- 如果数据库不在同一服务器,选择远程连接- 如果在同一服务器需要填写Ucenter 数据库信息- 应用ID(APP ID) 填写Ucenter 中Destoon 应用ID- 通信密钥填写Ucenter 中设定的通信密钥- 提交2、整合Discuz!(5.x/6.x)- 启用会员整合选择Discuz!- 整合程序字符编码选择论坛的编码- 整合程序地址填写- 整合密钥自行设定建议字母和数字组合- 提交进入Discuz! -〉扩展设置-〉通行证设置- 启用通行证选择是- 通行证私有密钥填写整合密钥- 应用程序URL 地址填写/member/ - 应用程序注册地址填写register.php- 应用程序登录地址填写login.php- 应用程序退出地址填写logout.php- 提交3、整合PHPWind(6.x/7.x)- 启用会员整合选择PHPWind- 整合程序字符编码选择论坛的编码- 整合程序地址填写- 整合密钥自行设定建议字母和数字组合- 提交进入PHPWind后台-〉插件中心-〉通行证- 是否开启通行证选择是- 通行证私有密钥填写整合密钥- 将该网站做为通行证的选择客户端- 通行证服务器地址填写/member - 通行证登录地址填写login.php- 通行证登录地址填写logout.php?- 通行证注册地址填写register.php- 提交以上整合仅供参考,希望对后来人有用;。

ucenter使用手册

ucenter使用手册

ucenter使用手册UCenter是百度提供的一款用于管理和维护个人中心(或者称为用户中心)的开源软件。

它可以帮助开发者快速搭建一个具有用户管理、内容管理、权限管理等功能的个人中心。

以下是UCenter的使用手册:一、安装与配置1.下载UCenter的最新版本,解压后上传到您的服务器上。

2.配置数据库连接信息,包括主机名、用户名、密码等。

3.配置网站信息,包括网站名称、网站URL等。

4.配置管理员信息,包括管理员账号、密码等。

5.配置其他相关设置,如缓存设置、调试模式等。

二、用户管理1.在UCenter后台管理页面,可以查看所有注册用户的信息,包括用户名、邮箱、手机号等。

2.可以对用户进行搜索、排序和筛选,方便管理。

3.可以对用户进行编辑和删除操作,包括修改用户信息、删除用户等。

4.可以对用户进行分组和标签管理,方便对用户进行分类和个性化推荐。

三、内容管理1.在UCenter后台管理页面,可以创建和管理文章、图片、视频等多种类型的内容。

2.可以对内容进行分类和标签管理,方便对内容进行分类和个性化推荐。

3.可以对内容进行搜索、排序和筛选,方便管理。

4.可以对内容进行编辑和删除操作,包括修改内容信息、删除内容等。

四、权限管理1.在UCenter后台管理页面,可以设置不同的权限组和角色,如管理员、编辑、普通用户等。

2.可以对权限组和角色进行管理,包括添加、编辑和删除等操作。

3.可以对权限组和角色进行授权操作,包括设置权限组和角色的权限范围等。

4.可以对用户的权限进行管理,包括修改用户的权限信息、删除用户的权限等。

五、其他功能1.UCenter还提供了其他一些功能,如友情链接管理、网站统计等。

2.开发者可以根据自己的需求,对UCenter进行二次开发,增加更多的功能和插件。

3.UCenter还提供了丰富的API接口,方便开发者进行集成和扩展。

总之,UCenter是一款功能强大、易于使用的开源软件,可以帮助开发者快速搭建一个具有用户管理、内容管理、权限管理等功能的个人中心。

thinkphp路由原理

thinkphp路由原理

thinkphp路由原理
ThinkPHP的路由原理是通过URL将请求转发到对应的控制器
和方法上,实现了请求的分发和处理。

具体来说,ThinkPHP的路由原理包括以下几个步骤:
1. 定义路由规则:在路由配置文件中,可以定义各种路由规则,如普通路由、带参数的路由、正则匹配等。

路由规则包括
URL规则和路由地址,用于匹配URL并将其转发到对应的控
制器和方法上。

2. 解析URL:当有请求访问时,ThinkPHP会将URL进行解析,提取出其中的模块、控制器、方法和参数等信息。

3. 匹配路由规则:解析出的URL信息会与路由规则进行匹配,如果能够匹配上则继续下一步,否则按照默认规则继续处理。

4. 转发请求:如果匹配上了路由规则,就会将请求转发到对应的控制器和方法上进行处理。

转发的过程包括实例化控制器和调用方法,并将参数传递给方法。

5. 处理请求:控制器接收到请求后,进行相应的处理逻辑,可以操作数据库、调用模型、渲染模板等。

处理结果将返回给前端显示。

通过路由的使用,可以实现更加灵活的URL访问方式,使得
项目的URL更加美观友好,并且能够根据不同的URL请求调用不同的控制器和方法,提高了代码的可维护性和可扩展性。

thinkphp union的用法

thinkphp union的用法

thinkphp union的用法Union是ThinkPHP框架中用于合并SQL查询结果集的函数。

它允许将多个SELECT语句的结果集合并成一个结果集,并返回一个不重复的结果集。

在本文中,我们将一步一步回答有关ThinkPHP Union的使用方法。

第一步:了解Union的基本概念Union是SQL语言中的一个关键字,用于合并两个或多个SELECT语句的结果集。

合并后的结果集中不会包含重复的数据行。

ThinkPHP框架提供了对Union的封装和简化,使开发者能够更方便地使用它。

第二步:掌握Union的语法和用法在ThinkPHP框架中,使用Union函数可以通过链式调用来构建Union 查询。

下面是Union的基本语法和用法:使用union方法进行union操作result = Db::table('table1')->union('SELECT * FROMtable2')->select();使用unionAll方法进行union all操作result = Db::table('table1')->unionAll('SELECT * FROMtable2')->select();上面的代码展示了如何使用Union和UnionAll进行查询操作。

Union方法用于合并两个结果集,而UnionAll方法则保留重复的数据行。

第三步:理解Union的高级用法除了基本的Union功能,ThinkPHP框架还提供了一些高级的Union用法,如Union查询中需要使用排序、限制结果集等。

下面是一些常见的高级用法示例:1. 使用orderBy方法进行排序:result = Db::table('table1')->union('SELECT * FROMtable2')->orderBy('id', 'desc')->select();2. 使用limit方法进行结果集限制:result = Db::table('table1')->union('SELECT * FROMtable2')->limit(10)->select();3. 使用field方法选择需要的字段:result = Db::table('table1')->field('id,name')->union('SELECTid,name FROM table2')->select();以上示例展示了如何在Union查询中使用orderBy、limit和field等方法,以满足更复杂的查询需求。

thinkPHP下ueditor的使用方法详解

thinkPHP下ueditor的使用方法详解

thinkPHP下ueditor的使⽤⽅法详解本⽂实例讲述了thinkPHP下ueditor的使⽤⽅法。

分享给⼤家供⼤家参考,具体如下:2、下载对应的php版的,下载后重命名为ueditor,根据需要放到对应的项⽬⽬录中。

我放的位置为Public/admin⽂件夹下,admin为后台的访问⼊⼝⽂件⽬录。

3、在项⽬中的使⽤⾸先需要引⼊核⼼的js⽂件:<script type="text/javascript" charset="utf-8" src="__PUBLIC__/admin/ueditor/ueditor.config.js"></script><script type="text/javascript" charset="utf-8" src="__PUBLIC__/admin/ueditor/ueditor.all.js"></script>然后再⽂件中加⼊<textarea>标签,注意设置id属性复制代码代码如下:<textarea name="content" id="EditorId"> </textarea>接着是初始化编辑器,注意配置路径<script type="text/javascript" charset="utf-8">window.UEDITOR_HOME_URL = "__PUBLIC__/admin/ueditor/";window.onload=function(){window.UEDITOR_CONFIG.initialFrameHeight=300;//编辑器的⾼度window.UEDITOR_CONFIG.initialFrameWidth=800;//编辑器的宽度var editor = new UE.ui.Editor({imageUrl : '__APP__/Editor/uploadImage',fileUrl : '__APP__/Editor/uploadFile',imagePath : '',filePath : '',imageManagerUrl:'__APP__/Editor/imageManage', //图⽚在线管理的处理地址imageManagerPath:'__ROOT__/'});editor.render("EditorId");}</script>注意:1、UEDITOR_HOME_URL的路径配置为ueditor所在的位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最近应公司的要求,要开发一个有点像QQ空间那样的会员管理中心网站,发现UCenter的很多功能酷似QQ空间,于是选择了UCenter作为程序的会员管理中心。

前台嘛就选择我之前基于ThinkPHP3.1.2框架开发的WBlog好了。

但是问题又来了:要求在WBlog前台注册的会员登录时要与UCenter同步,这就是我这次要解决的问题--ThinkPHP与UCenter的整合。

我在网上搜索了一下,ThinkPHP与UCenter的整合并不少,但是似乎越看越觉得头晕,不是少这就是少那,到头来差之毫厘,谬以千里,真够折腾的。

我仔细阅读了UCenter的开发文档后,经过多次的调试,终于完成了ThinkPHP与UCenter的整合。

感觉这个结果是从苦水里泡出来的一样,呵呵。

现在网志博客把整合的记录分享给需要的童鞋。

温馨提示:在thinphp与UCenter整合中,您需要的基本条件是,有一定的PHP基础,对ThinkPHP框架有所了解,会布署目录和配置数据。

好了,我们开始吧!下载并安装下面的程序WBlog3.1.2UCenter_Home_2.0_SC_UTF8UCenter 1.6.0安装WBlog博客程序在写本文之前,网志博客已发布的WBlog博客程序还没有会员中心,本次测试的会员中心是后面才写的。

如果你能等的话要待我整理好WBlog的会员中心程序才发布,不能等的话也不会影响下面的程序整合,因为你可以找或者自己写简单的满足以下两个条件的thikphp程序:1、可以注册会员2、可以登录和退出。

这里我就使用WBlog3.1.2了。

在服务器的根目录新建目录wblog1,把下载的WBlog3.1.2解压得到的WBlog目录里的所有文件复制到wblog1。

在浏览器输入http://127.0.0.1/wblog1/install/,安装WBlog3.1.2。

温馨提示:在整合时最容易搞错的就是路径问题,在接下来的整合操作的根目录都是指wblog1目录,所以要和服务器根目录区别开来。

安装UCenter 1.6.0(简体UTF-8)这个程序到官方去下载吧。

在网站根目录wblog1新建ucenter 目录,解压UCenter 1.6.0,把解压得到的upload目录里的所有文件复制到刚才新建的ucenter目录里。

在浏览器输入http://127.0.0.1/wblog1/ucenter/install/,安装UCenter 1.6.0。

安装UCenter_Home_2.0_SC_UTF8(简体中文版)在网站根目录wblog1新建uh目录并解压UCenter_Home_2.0_SC_UTF8,把解压得到的upload目录里的所有文件复制到刚才新建的uh目录里。

在浏览器输入http://127.0.0.1/wblog1/uh/install/,安装UCenter_Home_2.0_SC_UTF8。

需要注意的是,安装UCenter 1.6.0和UCenter_Home_2.0_SC_UTF8时顺序不能颠倒,否则无法安装。

好了,太累了,到这里就先告一段落吧,明天继续。

在网志博客的ThinkPHP3.1.2整合UCenter详解(一)中我们安装完了WBlog3.1.2、UCenter_Home_2.0_SC_UTF8和UCenter 1.6.0三个程序后。

接下来接着上一篇讲。

找到下载的UCenter 1.6.0,把advanced 目录里面的uc_client 和examples下面的api 文件夹复制到网站根目录wblog1下,和ThinkPHP在同一目录。

找到项目W3note的配置文件夹wblog1/ Conf/,在其新建一个UCenter的配置文件config_ucenter.php ,然后在WBlog1\W3note\Lib\ORG目录下新建一个UCenter的通讯处理类文件UcService.class.php,我们先不要管文件里面写什么代码,后面将会讲到。

好了到这里已经把后面要操作的目录和文件都布局好了。

为了理清目录和文件之间的层次关系,我把目录和文件制成目录树列出来:wblog1根目录| – index.php//前台入口文件| – admin.php| – W3note//前台项目| | – Lib| | | – ORG| | | | –UcService.class.php //UCenter的通讯处理类文件| | – Conf//W3note项目的配置目录| | | –config_ucenter.php //UCenter的配置文件| || – Admin| – ThinkPHP //thinkphp3.1.2核心包和一些扩展| – install| – api| | – uc.php|| – uc_client| – ucenter| – uh这样我们就可以一目了然了。

现在开始api目录里面的uc.php 配置了,首先打开这个文件,找到36行的位置这一行代码require_once DISCUZ_ROOT.'./config.inc.php';把'./config.inc.php'这一部分替换成'./W3note/Conf/config_ucenter.php'往下找还会看到几处的'./config.inc.php',按照上面的操作全部替换掉。

这样做目的是把前面建的配置文件config_ucenter.php导进来。

接下来我登录http://127.0.0.1/wblog1/ucenter,在打开左边菜单“应用管理”这一项,然后添加一个新应用,这时我们发现好多东西要填!照着下面操作就是了。

先看应用类型,因为这是我们自己开发的程序,所以就选其它吧,再看应用名称,随便填,只要不超过20字节就行了,我这里填wblog。

接下来是应用的主URL,这里填网站的主页http;//127.0.0.1/wblog1,注意了,后面没有“/”。

至于应用的其他URL还有应用IP这两项就跳过,不用管它了。

接下来是通信密钥,就按其旁边的提示填就是了,我这里填abc123456。

往下是应用的物路径,提示说默认为空,那就留空吧,还有查看个人资料页面地址也留空吧。

接下来是应用接口文件名称,默认为uc.php,保持原状吧。

继续往下看,标签单条显示模板还有标签模板标记说明这两项也不用理它,跳过。

是否开启同步登录,选是;是否接受通知也选是吧。

终于填完了,那就点击提交吧!还记得前面在uc.php导入的文件config_ucenter.php吗,里面可是一片空白啊,现在我们就来放些配置信息进去。

刚才我们填好的信息提交后,会在提交按钮下面的“应用的UCenter配置信息”下面生成了一些配置信息,我们直接把它复制,然后粘帖到config_ucenter.php,保存。

网上很多教程到这里就表示通信成功了,在这里我非常惊讶!因为通信并未成功!我在这里折腾了一些时间,后来仔细检了uc.php文件的代码,发现59行:require_once DISCUZ_ROOT.'./include/db_mysql.class.php';我在布局的目录中始终找不到db_mysql.class.php,后来发现db_mysql.class.php存UCenter_1.6.0_SC_UTF8\advanced\examples\include目录中,这就是问题所在!因为我们之前复制的只是UCenter_1.6.0_SC_UTF8\advanced\examples\中的api文件。

解决这一问题的办法就是把上面的代码修改为require_once DISCUZ_ROOT.'./uc_client/lib/db.class.php';导入的数据库类文件变了,那么我们也要对其所涉及的内容作相应的修改,在uc.php59行的下面如$GLOBALS['db'] = new dbstuff;$GLOBALS['db']->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, true, $dbcharset);$GLOBALS['tablepre'] = $tablepre;修改为$GLOBALS['db'] = new ucclient_db;$GLOBALS['db']->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, UC_DBCONNECT, true, UC_DBCHARSET);$GLOBALS['tablepre'] = UC_DBTABLEPRE;//关键上面数据库的链接信息的静态变量来自config_ucenter.php。

好了,我们回到后台ucenter刷新一下页面,发现什么---通信成功了!如果按上面的操作还未通信成功的,请到网志博客留言,有空我会回复!在网志博客的ThinkPHP3.1.2整合UCenter详解(二)已经实现了通讯成功了!那么接下来我们的目标:在thinkphp中会员注册成功时,UCenter Home也同时注册成功。

首先在项目W3note入口文件index.php配置一个常量define('WBLOG_ROOT_PATH', rtrim(dirname(__FILE__), '/\\') . DIRECTORY_SEPARATOR);//物理根目录常量WBLOG_ROOT_PATH是网站根目录wblog1的物理根目录,在我本地服务器打印输出:D:\phpsever\apache2\htdocs\wblog1\有必要在这里强调一下,理解WBLOG_ROOT_PATH很重要,因为在调试过程中路径最容易出错。

还记得前面我们建的UcService.class.php 文件吗?如果忘记了请看一下前面的目录树。

打开UcService.class.php文件,新建一个类UcService,然后写一个构造方法导入W3note/Conf/config_ucenter.php和uc_client/client.php两个文件。

代码:class UcService{public function __construct(){include_once(WBLOG_ROOT_PATH .'W3note/Conf/config_ucenter.php');include_once(WBLOG_ROOT_PATH . 'uc_client/client.php');}接下来我们写一个会员注册方法register,如public function register($username, $password, $email){}方法体放什么代码呢?其实很简单,因为UCenter的开发文档已经为我们准备好了!找到之前下载的UCenter_1.6.0_SC_UTF8,用浏览器打开UCenter_1.6.0_SC_UTF\advanced\document\index.htm,然后在左边的菜单栏找到“用户接口”,看到用户注册示例(PHP),把其下的代码复制过来。

相关文档
最新文档