• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    DedeCMS手动整合discuz7.x+uchome2.0的方法
    POST TIME:2021-05-23 01:56
    大家好!现在很多站长朋友喜欢使用dedecms和discuz,但截至到今年5月,官方都没有提供很好的整合方案; 于是我就自己手动对它们进行了整合,我曾今在5月份发布了discuz7+dedecms5.3的整合程序,但最近有大部分使用本程序的站长朋友找过我,原因是dedecms官方升级到5.5了,原程序不能正常使用了;我看了一下,5.5版本的注册页面有个参数变了,把参数名改一下就OK了;但是考虑到程序再次升级的问题,我有换了一种方式对其整合,还加上了uchome哦;这次方法是直接写入数据库的方式,不管官方再怎样升级,只要数据表名和字段名没有变,程序都可以依然正常使用哦 
    好了,不废话了,开始:
     
    注册整合开始:
     
    创建一文件zhuce.php,其作用定义dedecms,discuz,uchome的域名,和同步登陆和同步退出;
     
    修改dedecms的注册页面member/reg_new.php和uchome的注册页面source/do_register.php<?include("zhuce.php")?>
     
    <div style="display:none">
    
    <form action="<?=$bbsurl?>/register.php" name="zhuce">
    
    <input name="rf" value="<?=$_SERVER['SERVER_NAME']?>"><form>
    
    </div>
     
    <?="<script>zhuce.submit();</script>"?> 
    其中有个rf参数,作用是获取用户是从哪里注册的,等待注册成功跳转回去; 
    修改discuz注册页面模板templates/default/register.htm<label><em>帐号类型:</em>
     
    <input type="radio" name="mtype" value="个人" checked>个人
    
    <input type="radio" name="mtype" value="企业">企业</label>
    
    <label><em>{lang username}:</em><input type="text" id="username" name="username" autocomplete="off" size="25" maxlength="15" value="" onBlur="checkusername()" tabindex="1" class="txt" /> *</label>
    
    <label><em>昵称/公司:</em><input type="text" name="nickname" autocomplete="off" size="25" maxlength="15" tabindex="1" class="txt" /> *</label>
    
    <label><em>登陆{lang password}:</em><input type="password" name="password" size="25" id="password" onkeypress="detectcapslock(event, this)" tabindex="1" class="txt" /> *</label>
    
    <label><em>{lang password_confirm}:</em><input type="password" name="password2" size="25" id="password2" onkeypress="detectcapslock(event, this)" tabindex="1" value="" class="txt" /> *</label>
    
    <label><em>{lang email}:</em><input type="text" name="email" autocomplete="off" size="25" id="email" onBlur="checkemail()" tabindex="1" class="txt" /> *</label> 
    修改discuz的注册页面:register.php,加上以下代码:$depas=md5($_POST[password]);//dedecms采用md5方式对其密码加密
     
    $db->query("INSERT INTO $detable (mtype,userid,pwd,uname,email)
     
    VALUES ('$_POST[mtype]','$username','$depas','$_POST[nickname]','$email')");//写入dedecms的用户表 
    修改原代码$db->query("REPLACE INTO {$tablepre}memberfields (uid, authstr $fieldadd1) VALUES ('$uid', '$authstr' $fieldadd2)"); 
    为以下代码,其作用是同是添加昵称并把昵称也写在discuz的表里面;$db->query("REPLACE INTO {$tablepre}memberfields (uid,nickname,authstr $fieldadd1) VALUES ('$uid','$_POST[nickname]','$authstr' $fieldadd2)"); 
    再加上以下代码,其作用是用于跳转,用从哪来注册的跳转回哪里去if($_POST[rf]){echo "<b><font color=red size=36>注册成功!!</font></b><script>location=\&;http://$_POST[rf]\&;;</script>";} 
    注册整合结束;开始头像调用整合: 
    修改dedecms用户调用文件 member/ajax_loginsta.php$mid = $cfg_ml->fields['mid'];//获取用户的id
     
    $face = $ucurl."/avatar.php?uid=".$mid."&size=small"; 
    修改dedecms首页模板 templets/default/index.htm<!-- /userlogin -->
     
    <script language="javascript" type="text/javascript">CheckLogin();</script>
    
    <div class="latestlogin"> <strong>最近登陆的会员</strong>
    
    <ul class="e7">
    
    {dede:php}
    
    while($rs = $db->GetArray('user')){
    
    echo "<li><a href=\&;"$homeurl."/".$rs[mid]."\&; target=\&;_blank\&;><img src=\&;".$ucurl."/avatar.php?uid=".$rs[mid]."&size=small"\&; alt='".$rs[uname]."的空间' width=\&;52\&; height=\&;52\&; />".$rs[uname]."</a></li>";}
    
    {/dede:php}
    
    </ul>
    
    </div>
    
    <!-- /latestlogin --> 
    头像调用整合结束,开始整合同步登陆:如何实现请看下面zhuce.php解释; 
    修改dedecms的登陆页面 member/index_do.php 在提示登陆成功的代码后面加上:echo "<iframe src=".$bbsurl."/zhuce.php?s=in&u=".$username."></iframe>." 
    修改discuz的登陆页面 logging.php 在提示登陆成功的代码后面加上:echo "<iframe src=".$deurl."/zhuce.php?s=in&u=".$username."&p=".$password."></iframe>" 
    同步登陆整合结束,开始整合同步退出:如何实现请看下面zhuce.php解释; 
    修改dedecms的登陆页面 member/index_do.php 在提示成功退出的代码后面加上:echo "<iframe src=".$bbsurl."/zhuce.php?s=out></iframe>" 
    修改discuz的登陆页面 logging.php 在提示成功退出的代码后面加上:echo "<iframe src=".$deurl."/zhuce.php?s=out></iframe>" 
    同步退出整合完毕!! 
    zhuce.php解释:<?
     
    $bbsurl="http://bbs.my.com";//填写您的discuz的完整URL,前面加“http://”,后面不要加“/”
     
    $ucurl="http://www.my.com/ucenter";//填写您的UCenter的完整URL,前面加“http://”,后面不要加“/”
     
    $homeurl="http://home.my.com";//填写您的UChome的完整URL,前面加“http://”,后面不要加“/”
     
     
     
    if($_GET[s]=="in"){include("member/config.php");//判断是登陆
     
    $cfg_ml = new MemberLogin(7*3600);
     
    $rs = $cfg_ml->CheckUser($_GET[u], $_GET[p]);//写cookies
     
    }
     
    if($_GET[s]=="out"){include("member/config.php");//判断是退出
     
    $cfg_ml->ExitCookie();//清cookies
     
    }
     
     
     
    ?> 
    <?
     
    $deurl="http://www.my.com";//填写您的dedecms的完整URL,前面加“http://”,后面不要加“/”
     
    $detable="dede_"."member";//填写您的dedecms表名前缀
     
     
     
    if($_GET[s]=="in"){include("include/common.inc.php");//判断是登陆
     
    $query0 = $db->query("SELECT * FROM {$tablepre}members WHERE username='$_GET[u]'");
     
    while($user0 = $db->fetch_array($query0)) {$uid0=$user0[uid];$pwd0=$user0[password];}
     
    dsetcookie('cookietime', $cookietime, 31536000);//提取出用户信息
     
    dsetcookie('auth', authcode("$pwd0\t$discuz_secques\t$uid0", 'ENCODE'), $cookietime, 1, true);//写cookies
     
    }
     
    if($_GET[s]=="out"){include("include/common.inc.php");//判断是退出
     
    clearcookies();//清cookies
     
    }
     
     
     
    ?> 
    登陆或退出的时候,同时做cookies操作 
    整合完毕!
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!