开源CMS \ 帝国cms \ 帝国cms和discuz免激活同步登录

帝国cms和discuz免激活同步登录

总点击27
简介:此处ecms为版本6.6,discuz为Discuz!X2 ①后台设置discuz免激活 ②通过ucenter整合ecms ③帝国cms免激活登录

此处ecms为版本6.6 ,discuz为Discuz! X2


①后台设置discuz免激活


②通过ucenter整合ecms


③帝国cms免激活登录


④discuz注册时同步登录


论坛需要在cms目录下,否则同步登陆不能做到免激活

①后台设置discuz免激活 后台=>站长=>UCenter 设置=>是否允许直接激活,选择是

帝国cms和discuz免激活同步登录

Ucenter默认和discuz是整合的

②通过ucenter整合ecms

帝国cms和discuz免激活同步登录

帝国cms和discuz免激活同步登录

提交后是这样 

帝国cms和discuz免激活同步登录

然后在http://www.phome.net/download/页面下载[DISCUZ

UCenter GBK接口]

将接口包的”upload”目录里的文件夹及文件上传至帝国CMS的”e”目录里(注意是上传 upload 目录中的文件和目录,而不是上传 upload 目录本身)。

帝国cms和discuz免激活同步登录

修改帝国CMS目录下的e/config.inc.php文件配置

打开刚才ecms应用复制UCenter 配置信息如图

帝国cms和discuz免激活同步登录

粘帖至e/config.inc.php

帝国cms和discuz免激活同步登录

 

通信成功

帝国cms和discuz免激活同步登录

 

现在可以在论坛注册一个用户测试了,测试结果是,ecms没同步登录上,但是用刚才注册的用户可以手动登录上,也就是没有做到免激活

③帝国cms免激活登录

在后台找到模版”JS调用登陆模板”修改注册地址[!--news.url--]/bbs/member.php?mod=register&referer=[!--news.url--]

 

帝国cms和discuz免激活同步登录

Ecms目录下eapiuc.php文件中找到代码块

1

elseif($action == 'synlogin' && $_GET['time'] == $get['time'])

后面(大概176行)

1

2

3

4

5

else

 

{

$set5=esetcookie("mldoactive",$uid,$logincookie);

}

修改为else

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

{

//同步登录 API 接口

$uid = intval($get['uid']);

$logincookie=time()+86400*365;//cookie保存时间

$rnd=make_password(12);

//默认会员组

if(empty($ur['groupid'])){

$ur['groupid']=$public_r['defaultgroupid'];

}

$usql=$empire->query("INSERT INTO {$dbtbpre}enewsmember(userid,username,password,rnd,email,

registertime,groupid,userfen,userdate,money,zgroupid,havemsg,checked,salt)

VALUES('$uid','$get[username]','','$rnd','$get[email]','$logincookie',1,'')");

header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

$set1=esetcookie("mlusername",$get['username'],$logincookie);

$set2=esetcookie("mluserid",$get['uid'],$logincookie);

$set3=esetcookie("mlgroupid",$logincookie);

$set4=esetcookie("mlrnd",$rnd,$logincookie);

esetcookie("mldoactive","",0);

//$set5=esetcookie("mldoactive",$logincookie);

}

④discuz注册时同步登录


找到source/class/class_member.php(你的discuz目录下)


在class logging_ctl 里面找到function on_logout(),在上面加入以下代码

1

2

3

4

5

6

7

8

9

10

11

12

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));

}

}

然后找到

1

2

3

if(strpos($url_forward,$this->setting['regname']) !== false || strpos($url_forward,'buyinvitecode') !== false) {

$url_forward = 'forum.php';

}

在后面添加

1

2

3

4

else{

$url_forward = 'member.php?mod=logging&action=ucsyn&referer='.$url_forward; //uc syn

}

//$url_forward 可以修改成 $_G['gp_referer'],同时品牌空间的注册地址需要填写为 http://discuz注册地址&referer=品牌空间地址

找到 source/module/member/member_logging.php (你的discuz目录下)

1

2

3

if(!in_array($_G['gp_action'],array('login','logout'))) {

showmessage('undefined_action');

}

改成

1

2

3

if(!in_array($_G['gp_action'],'logout','ucsyn'))) {

showmessage('undefined_action');

}

好了,大功告成,可以测试一下了


参考:

http://www.zzbaike.com/wiki/ECMS_6.6/%E6%95%B4%E5%90%88Ucenter%E6%8E%A5%E5%8F%A3%E6%95%99%E7%A8%8B

http://www.discuz.net/thread-2356743-1-1.html

意见反馈 常见问题 官方微信 返回顶部