发新帖

discuz与ecshop整合后,无法同步登录解决方案

[复制链接]
3436 0
Discuz与ecshop的整合我们这里就不做阐释,下面我们针对两者无法同步登录问题给出一个解决方案。
一,
打开ecshop会员整合编辑界面发现有一个错误,在“UCenter IP 地址"这一项中被系统填写成了ecshop管理员用户名,把这一项改写为正确的ip地址。如下图:
   125240ed6eizrq7vv7vkqu.png.thumb.jpg
二,
打开discuz目录下source\plugin\myrepeats\switch.inc.php文件,找到
  1. $ucsynlogin = $_G['setting']['allowsynlogin'] ? uc_user_synlogin($_G['uid']) : '';
复制代码

这一句,将其修改为
  1. $ucsynlogin = uc_user_synlogin($_G['uid']);
复制代码
(不做判断,强行指定)。
三,
打开discuz目录下source\class\class_member.php文件,该文件需要有三处修改。


1)在大约35行找到
  1. $ucsynlogin = $this->setting['allowsynlogin'] ? uc_user_synlogin($_G['uid']) : '';
复制代码
这一句,将其修改为
  1. $ucsynlogin =uc_user_synlogin($_G['uid']);
复制代码
(不做判断,强行指定。);

2 )在大约142行找到
  1. $ucsynlogin = $this->setting['allowsynlogin'] ? uc_user_synlogin($_G['uid']) :
复制代码
''这一句,将其修改为
  1. $ucsynlogin = uc_user_synlogin($_G['uid']);
复制代码
(不做判断,强行指定)。[是的,上面两句完全一样]。


3)在大约找到318行找到
  1. $ucsynlogout = $this->setting['allowsynlogin'] ? uc_user_synlogout() : ''
复制代码
,将其修改为
  1. $ucsynlogout = uc_user_synlogout();
复制代码


四,
打开ecshop安装目录下includes\modules\integrates\ucenter.php文件,找到函数
     
  1.   function logout() //(大约190行):
  2.     {
  3.         $this->set_cookie();  //清除cookie
  4.         $this->set_session(); //清除session
  5.         $this->ucdata = uc_call("uc_user_synlogout");   //同步退出
  6.         return true;
  7.     }                                                                 
复制代码

  1. $this->ucdata = uc_call("uc_user_synlogout")
复制代码
这一句改为
  1. $this->ucdata = uc_call("uc_user_synlogout",array("0"));
复制代码
//同步退出



五,
分别打开discuz与ecshop应用下的uc_client\data\cache目录下的apps.php文件,结果发现两个文件有所不同。其中一个中的文件少了一个应用的配置。可以手动把缺少应用配置的那个文件填写完整后保存即可。


至此保存修改的文件,同步登录、退出解决完毕。
无限星辰工作室 云主机 厦门生活网 星辰站长
服务Discuz!建站|搬家|运维|Win Linux网站环境(lanmp)架设优化|服务器安全维护|解决CPU100
服务理念:专业 诚信 友好QQ842062626 服务项目

举报 使用道具

回复
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

更多

客服中心

400-800-8888 周一至周日8:30-20:30 仅收市话费
快速回复 返回顶部 返回列表