本帖最后由 aiens 于 2011-9-8 12:19 编辑
原因:
discuz注册的时候没有进行uc通信同步。
故障现象:
(前提是,您已经整合成功了,可以正常通信了)有些朋友整合discuz和品牌空间后,第一次注册的用户无法自动登陆品牌空间,而第二次登陆之后就可以双向同步。比如,我整合了discuz和品牌空间,然后我在品牌空间那里点击注册,然后进入discuz注册页面。注册好后,会自动返回到品牌空间的页面,但是发现不是登陆状态,这对用户体验很不好。
参考解决方案:
找到source/class/class_member.php(你的discuz目录下)
1.在class logging_ctl 里面找到function on_logout(),在上面加入以下代码
- function on_ucsyn(){
- global $_G;
-
- if($_G['uid']) {
- $ucsynlogin = $this->setting['allowsynlogin'] ? uc_user_synlogin($_G['uid']) : '';
- $url_forward = dreferer();
- if(strpos($url_forward, $this->setting['regname']) !== false) {
- $url_forward = 'forum.php';
- }
- showmessage('login_succeed', $url_forward ? $url_forward : './', array('username' => $_G['member']['username'], 'usergroup' => $_G['group']['grouptitle'], 'uid' => $_G['uid']), array('extrajs' => $ucsynlogin));
- }
- }
复制代码 2.然后找到- if(strpos($url_forward, $this->setting['regname']) !== false || strpos($url_forward, 'buyinvitecode') !== false) {
- $url_forward = 'forum.php';
- }
复制代码 在后面添加- else{
- $url_forward = 'member.php?mod=logging&action=ucsyn&referer='.$url_forward; //uc syn
- } //$url_forward 可以修改成 $_G['gp_referer'],同时品牌空间的注册地址需要填写为 http://discuz注册地址&referer=品牌空间地址
复制代码 3.找到 source/module/member/member_logging.php (你的discuz目录下)- if(!in_array($_G['gp_action'], array('login', 'logout'))) {
- showmessage('undefined_action');
- }
复制代码 改成- if(!in_array($_G['gp_action'], array('login', 'logout','ucsyn'))) {
- showmessage('undefined_action');
- }
复制代码
这样后,以后在discuz注册用户后,会自动同步到其他应用的。
可以看看效果 http://www.xianga.net/bbs http://brand.xianga.net
另外看看品牌空间的地图找商家吧。哈哈! http://map.xianga.net
|