首页 > PHP > 解决 Ecshop 2.7.2 与 Discuz! X2 的同步退出问题

解决 Ecshop 2.7.2 与 Discuz! X2 的同步退出问题

2011年12月16日 发表评论 阅读评论

最近一个项目需要整合 Ecshop 和 Discuz。整合过程很简单,最新版的 Discuz! X2 已经自带了 uc_server 和 uc_client。由于主目录是 Ecshop,Discuz 放在 bbs 目录下,为了减少垃圾文件,我全局修改了 Ecshop 里关于 uc_client 的调用路径,改成了 discuz 里自带的,这样两个程序就共用一个 uc_client。

全部设置成接口调用方式后测试发现,两边登陆都可以同步登陆到另一程序上,但退出则无法实现同步登陆。顺着 Ecshop 的退出流程,顺藤摸瓜找到了 lib_common.php 文件中的 uc_call 这个方法。这个方法的第二个参数 $params 的默认值是 null。而 Ecshop 注销时只传了调用 uc_client 中同步退出方法名做为一个参数的值,第二个参数使用的是默认值。而这个方法中通过 call_user_func_array($func, $params); 来调用对应的方法,问题就在这,第二个 $params 参数如果是 null 则 call_user_func_array 执行失败。解决办法很简单,修改 Ecshop 里 lib_common.php 中 function uc_call($func, $params=null) 这一行改成 function uc_call($func, $params=array()) 即可。

分类: PHP 标签:
  1. 2012年2月7日20:10 | #1

    跑哪去了?你用哪个QQ:20552109这个?还是? 加我81679414

  2. asd
    2012年2月9日10:21 | #2

    你说的页面没有找到呢。。。

  3. asd
    2012年2月9日10:22 | #3

    我用的X2没找到lib_common.php

  4. 2012年3月28日13:30 | #4

    最近一个项目需要整合 Ecshop2.7.2和Discuz X2,但在搭建ecshop 通过UCenter 与 Discuz! x2整合平台时,却发现了一个问题,EC登陆同步成功,DZ登陆同步不成功,同步登陆成功后,从 dz登出却发现EC没有被同步登出,同样EC登出却发现dz没有被同步登出,检查UCenter后确认整合通信正常,网上好多朋友也碰到过这样的问题,确实难缠,最郁闷的是官方一直没有给个解决的方案。
    这里我给出一套方案50元保证双向同步登录和退出都正常,你出钱我出技术。有需求服务请加MSN:frank.cao@linkdelight.com或QQ:673328006

  5. 2012年5月22日16:25 | #5

    @asd

    是 ecshop 的 include/lib_common.php

  1. 本文目前尚无任何 trackbacks 和 pingbacks.