Discuz与ecshop的整合我们这里就不做阐释,下面我们针对两者无法同步登录问题给出一个解决方案。
一,
打开ecshop会员整合编辑界面发现有一个错误,在“UCenter IP 地址"这一项中被系统填写成了ecshop管理员用户名,把这一项改写为正确的ip地址。如下图:
二,
打开discuz目录下source\plugin\myrepeats\switch.inc.php文件,找到- $ucsynlogin = $_G['setting']['allowsynlogin'] ? uc_user_synlogin($_G['uid']) : '';
复制代码
这一句,将其修改为- $ucsynlogin = uc_user_synlogin($_G['uid']);
复制代码 (不做判断,强行指定)。
三,
打开discuz目录下source\class\class_member.php文件,该文件需要有三处修改。
1)在大约35行找到- $ucsynlogin = $this->setting['allowsynlogin'] ? uc_user_synlogin($_G['uid']) : '';
复制代码 这一句,将其修改为- $ucsynlogin =uc_user_synlogin($_G['uid']);
复制代码 (不做判断,强行指定。);
2 )在大约142行找到- $ucsynlogin = $this->setting['allowsynlogin'] ? uc_user_synlogin($_G['uid']) :
复制代码 ''这一句,将其修改为- $ucsynlogin = uc_user_synlogin($_G['uid']);
复制代码 (不做判断,强行指定)。[是的,上面两句完全一样]。
3)在大约找到318行找到- $ucsynlogout = $this->setting['allowsynlogin'] ? uc_user_synlogout() : ''
复制代码 ,将其修改为- $ucsynlogout = uc_user_synlogout();
复制代码
四,
打开ecshop安装目录下includes\modules\integrates\ucenter.php文件,找到函数
- function logout() //(大约190行):
- {
- $this->set_cookie(); //清除cookie
- $this->set_session(); //清除session
- $this->ucdata = uc_call("uc_user_synlogout"); //同步退出
- return true;
- }
复制代码
将- $this->ucdata = uc_call("uc_user_synlogout")
复制代码 这一句改为- $this->ucdata = uc_call("uc_user_synlogout",array("0"));
复制代码 //同步退出
五,
分别打开discuz与ecshop应用下的uc_client\data\cache目录下的apps.php文件,结果发现两个文件有所不同。其中一个中的文件少了一个应用的配置。可以手动把缺少应用配置的那个文件填写完整后保存即可。
至此保存修改的文件,同步登录、退出解决完毕。 |
|
|
|
|