您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop怎么与discuz整合
盛枫瑾2024-11-27Ecshop商城教程已有人查阅
导读最近在做一个电子商务网站,需要在上面挂一个论坛,discuz无疑是最佳的选择,自然就得需要实现ecshop与discuz的同步登陆,否则空挂一个论坛在上面毫无意义。
最近在做一个电子商务网站,需要在上面挂一个论坛,discuz无疑是最佳的选择,自然就得需要实现ecshop与discuz的同步登陆,否则空挂一个论坛在上面毫无意义。同步登陆不仅方便用户,也能很好的黏住用户和统一管理用户数据。好在之前研究过Ucenter的通信原理,所以实现起来还是比较有底气 的,不过还是花了几天的时间才搞定。下面就谈谈ecshop和discuz的整合过程,整合过程中出现的问题及解决方法。
ecshop也是康 盛的产品,同步登陆的东西有些文件已经存在,所以相对于整合非康盛的产品来说要稍微容易一些,但实现的方法是一致的。废话不多说,直接进入主题。1.安装 ecshop和discuz,我用的ecshop版本大概是2.7,discuz选择的是x1.5,这个地方得注意编码的一致,否则后面会出错。2.将 discuz中的uc_client整个文件夹直接copy到ecshop根目录下。3.进入ecshop后台->会员整合->安装 Ucenter,这一步比较简单,一般不会出什么问题。这三步完成后去discuz的ucenter后台->应用管理中查看ecshop和 discuz是否已经通信成功。这三步完成后似乎就可以了,其实不然,还差得远呢。我总结一下自己整合过程中出现的几个问题及解决方法:(1)通信失败; (2)通信成功,但是ecshop和discuz不能同步登陆;(3)ecshop新注册的用户到discuz登陆需要激活;(4)ecshop新注册的 用户不能同步登陆到discuz;(5)discuz注册的用户不能同步登陆到ecshop;(6)在ecshop登陆或注册的用户,在discuz退出 后,不能同步退出到ecshop。解决方法:(1)查看Ucenter后台->应用管理,顶部提示如果通信失败尝试修改Ucenter的IP地址, 进去一看IP是127.0.0.1果然有问题,直接去掉,问题解决。(2)通信成功但是不能同步登陆,用FF的firebug跟踪请求发现根本没有同步登 陆的请求,而且还报错:Bad Request,Invalid HostName,百思不得其解,果断百度一下发现是discuz后台->站长->Ucenter设置中IP地址是127.0.0.1,直接 去掉,但是还不能同步登陆,跟踪discuz同步登陆的代码发现$_G['setting']['allowsynlogin']是0,但是 Ucenter应用管理中明明已经开启同步登陆,于是想到可能是缓存的原因,去discuz后台更新缓存,结果同步登陆终于OK。(3)跟踪同步登陆代码 发现ecshop新注册的用户只存放到Ucenter中,激活之后才会写入到pre_common_member中,同时dsetcookie。这个问题 的解决方法很明显即增加对pre_common_member及pre_common_member_count的写入(该文件为discuz下的api 目录中的uc.php)。
以上就是自己在整合ecshop和discuz时的过程,遇到的问题及解决方法,看到此文并且有这个需要的童鞋希望能帮到你的一点小忙。PS:技术文章真的不好写,每个地方都得仔细斟酌,生怕写错了误导到别人,不过疏漏有时候在所难免,如果发现有错误之处还望指正。ecshop与discuz的整合
ecshop也是康 盛的产品,同步登陆的东西有些文件已经存在,所以相对于整合非康盛的产品来说要稍微容易一些,但实现的方法是一致的。废话不多说,直接进入主题。1.安装 ecshop和discuz,我用的ecshop版本大概是2.7,discuz选择的是x1.5,这个地方得注意编码的一致,否则后面会出错。2.将 discuz中的uc_client整个文件夹直接copy到ecshop根目录下。3.进入ecshop后台->会员整合->安装 Ucenter,这一步比较简单,一般不会出什么问题。这三步完成后去discuz的ucenter后台->应用管理中查看ecshop和 discuz是否已经通信成功。这三步完成后似乎就可以了,其实不然,还差得远呢。我总结一下自己整合过程中出现的几个问题及解决方法:(1)通信失败; (2)通信成功,但是ecshop和discuz不能同步登陆;(3)ecshop新注册的用户到discuz登陆需要激活;(4)ecshop新注册的 用户不能同步登陆到discuz;(5)discuz注册的用户不能同步登陆到ecshop;(6)在ecshop登陆或注册的用户,在discuz退出 后,不能同步退出到ecshop。解决方法:(1)查看Ucenter后台->应用管理,顶部提示如果通信失败尝试修改Ucenter的IP地址, 进去一看IP是127.0.0.1果然有问题,直接去掉,问题解决。(2)通信成功但是不能同步登陆,用FF的firebug跟踪请求发现根本没有同步登 陆的请求,而且还报错:Bad Request,Invalid HostName,百思不得其解,果断百度一下发现是discuz后台->站长->Ucenter设置中IP地址是127.0.0.1,直接 去掉,但是还不能同步登陆,跟踪discuz同步登陆的代码发现$_G['setting']['allowsynlogin']是0,但是 Ucenter应用管理中明明已经开启同步登陆,于是想到可能是缓存的原因,去discuz后台更新缓存,结果同步登陆终于OK。(3)跟踪同步登陆代码 发现ecshop新注册的用户只存放到Ucenter中,激活之后才会写入到pre_common_member中,同时dsetcookie。这个问题 的解决方法很明显即增加对pre_common_member及pre_common_member_count的写入(该文件为discuz下的api 目录中的uc.php)。
if($member = DB::fetch($query)) {
dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'),$cookietime);
}else{//非激活状态下写入
$query = DB::query("SELECT email FROM ".DB::table('ucenter_members')." WHERE uid='$uid'");
if($a = DB::fetch($query)){
$email = $a['emaiil'];
}else{
$email = '';
}
$userdata = array(
'uid' = $get['uid'],
'username' = $get['username'],
'password' = $get['password'],
'email' = $email,
'adminid' = 0,
'groupid' = 10,
'regdate' = $get['time'],
'credits' = 0,
'timeoffset' = 9999
);
DB::insert('common_member', $userdata);
DB::insert('common_member_count', array('uid'=>$get['uid']));
dsetcookie('auth', authcode("$get[password]\t$get[uid]", 'ENCODE'),$cookietime);
}
加完之后此问题解决。(4)因为之前研究过Ucenter通信的原理,所以该问题的第一反应就是ecshop注册完后没有调用同步登陆的代码,于是找到ecshop注册文件user.php在注册代码后面加上:
$user->login($username,$password);$ucdata = isset($user->ucdata) ? $user->ucdata : '';
问题顺利解决。(5)该问题跟(4)一样的道理,也是在注册文件member_register.php中增加同步登陆的调用:
$synlogin = $_G['setting']['allowsynlogin'] ? uc_user_login($_G['uid']) : '';
这个地方需要注意:一定要在注册模板register.htm中输出$synlogin,因为这个返回值其实就是一段js脚本(发同步登陆的通知),需要放 到页面中才能执行。该问题也顺利得到解决。(6)这个问题比较怪异,在ecshop登陆后只能在ecshop同步退出,在discuz则不能,而如果在 discuz登陆,在ecshop和discuz均能同步退出。用firebug查看cookie发现从discuz退出的时候cookie也已经清空, 但就是不能在ecshop同步退出,困惑之下只能google,按照上面的一个说法在清空cookie时增加第四个cookie路径参数,问题果然得到解 决,看来操作cookie的时候真的得注意cookie的路径及域。以上就是自己在整合ecshop和discuz时的过程,遇到的问题及解决方法,看到此文并且有这个需要的童鞋希望能帮到你的一点小忙。PS:技术文章真的不好写,每个地方都得仔细斟酌,生怕写错了误导到别人,不过疏漏有时候在所难免,如果发现有错误之处还望指正。ecshop与discuz的整合
本文标签:
很赞哦! ()
相关教程
图文教程
ecshop首页调用指定商品分类下商品数量循环和css循环使用说明
商城首页调用指定商品分类下商品数量循环和css循环使用说明
ecshop文章列表增加文章显示数量的方法
网站根目录下改为 $size = 20; 就行。 这个20的数量就是你显示文章的数量,你可以修改成你觉得满意的数量。 然后到后台点击一下清除缓存。就可以了!
ecshop商城系统程序介绍,ecshopB2C商城独立网店系统
ECShop是一款B2C独立网店系统,适合企业及个人快速构建个 化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。 ECSh
ecshop购物车商品自动消失清空怎么办
最近有不少朋友反映关于ECShop购物车的问题:需要加入多个商品到购物车时,发现之前加入到购物车的商品都自动消失了,只有最后一次加入购物车的商品在里面。
相关源码
-
帝国cms7.5模板情感文学名言名句心情文章类源码下载带手机本模板基于帝国CMS7.5开发,为情感文学类网站设计。整体风格温馨雅致,布局合理清晰,特别适合建设情书分享、文学作品展示类网站。模板采用响应式设计,能够自动适配各种终端设备。查看源码 -
(自适应响应式)瓷砖大理石装修建材类网站pbootcms模板html5模板本模板基于PbootCMS开发,针对瓷砖、大理石等建材行业特点进行优化设计。采用响应式布局技术,确保产品展示效果在不同设备上都能合理呈现。模板特别强化了石材纹理的视觉表现力,帮助建材企业更好地展示产品质感。查看源码 -
(PC+WAP)铝合金门窗定制pbootcms网站模板源码为铝合金门窗、定制门窗企业打造的高性能网站模板,基于PbootCMS开源内核开发,采用HTML5自适应架构,PC与手机端数据实时同步,覆盖全终端用户交互场景。查看源码 -
(自适应响应式)双语LED照明灯饰灯具外贸网站pbootcms源码下载模板采用响应式设计,能自动适应手机、平板和电脑等多种设备屏幕,确保用户在不同设备上都能获得良好的浏览体验。同一后台管理,数据实时同步,操作简便高效。查看源码 -
(自适应响应式)HTML5建筑工程公司建筑集团网站模板下载基于PbootCMS内核开发的响应式建筑行业网站模板,为建筑工程公司、建筑集团等企业打造,通过简洁大气的设计风格展现企业专业形象。查看源码 -
(自适应)建站广告公司工作室作品展示品牌策划设计pbootcms源码下载基于PbootCMS开发的创意服务展示系统,内置作品集展示、服务流程图等专业模块,预设客户案例、设计流程等创意行业专属栏目结构。查看源码
| 分享笔记 (共有 篇笔记) |
