记录解决UCenter 1.6 DISCUZ 3.1 和 ECmall 2.3 中EC点击退出无法同步其他应用退出的问题

如标题所述:

   前段时间因为项目问题,使用最新的UCenter 1.6版本整合 Discuz 3.1 版本 、ECmall 2.3 版本应用的需求,由于ECmall 已退出 良久无法得到官方的更新维护,所以无法跟上UC的步伐,导致EC无法实现同步问题。

   获取UC客户端最新uc_client文件覆盖EC的客户端文件,虽然能够实现同步登录,以及当论坛点击退出的时候能够实现同步退出,但是点击EC时却不能达到同步退出的效果!

   根据查找原因发现,问题出自于ECmall系统中eccore文件下的ecmall.php文件的call_user_func_array PHP内置方法的问题,该方法调用返回null,即无法加载$func方法,然后检测得到自身的PHP版本是5.3版本的,可能PHP内置的call_user_func_array方法在无参加载中存在BUG,所以无法使用call_user_func_array该方法进行加载$func方法(uc_user_synlogout方法无法执行返回NULL),从而无法实现同步退出。

   ecmal.php文件问题代码如图:

       wKiom1MVTLrQBiBxAACC1S-h3x8125.jpg


由于时间问题,暂时无良好解决方案,但初步能实现同步退出的问题处理,暂作记录如下:

   wKioL1MVTOqDyg2MAADIqMo49Ew563.jpg

如有大神有较好解决方案,谢谢分享!

你可能感兴趣的:(discuz,ucenter,3.1,1.6,同步问题,2.3,ecmall)