织梦DedeCMS手动整合discuz7.x+uchome2.0的方法

[复制链接]
查看1803 | 回复1 | 2019-9-7 08:59 | 显示全部楼层 |阅读模式
织梦DedeCMS手动整合discuz7.x+uchome2.0的方法
注册整合开始:

创建一文件zhuce.php,其作用定义dedecms,discuz,uchome的域名,和同步登陆和同步退出;

修改dedecms的注册页面member/reg_new.php和uchome的注册页面source/do_register.php<?include("zhuce.php")?>

  1. <div style="display:none">
  2. <form action="<?=$bbsurl?>/register.php" name="zhuce">
  3. <input name="rf" value="<?=$_SERVER['SERVER_NAME']?>"><form>
  4. </div>
复制代码


<?="<script>zhuce.submit();</script>"?>
其中有个rf参数,作用是获取用户是从哪里注册的,等待注册成功跳转回去;
修改discuz注册页面模板templates/default/register.htm<label><em>帐号类型:</em>

  1. <input type="radio" name="mtype" value="个人" checked>个人
  2. <input type="radio" name="mtype" value="企业">企业</label>
  3. <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>
  4. <label><em>昵称/公司:</em><input type="text" name="nickname" autocomplete="off" size="25" maxlength="15" tabindex="1" class="txt" /> *</label>
  5. <label><em>登陆{lang password}:</em><input type="password" name="password" size="25" id="password" onkeypress="detectcapslock(event, this)" tabindex="1" class="txt" /> *</label>
  6. <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>
  7. <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 -->

  1. <script language="javascript" type="text/javascript">CheckLogin();</script>
  2. <div class="latestlogin"> <strong>最近登陆的会员</strong>
  3. <ul class="e7">
  4. {dede:php}
  5. while($rs = $db->GetArray('user')){
  6. 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>";}
  7. {/dede:php}
  8. </ul>
  9. </div>
  10. <!-- /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.zidiu.com";//填写您的discuz的完整URL,前面加“http://”,后面不要加“/”
$ucurl="http://www.zidiu.com/ucenter";//填写您的UCenter的完整URL,前面加“http://”,后面不要加“/”
$homeurl="http://home.zidiu.com";//填写您的UChome的完整URL,前面加“http://”,后面不要加“/”
if($_GET=="in"){include("member/config.php");//判断是登陆
$cfg_ml = new MemberLogin(7*3600);
$rs = $cfg_ml->CheckUser($_GET, $_GET[p]);//写cookies

}
if($_GET=="out"){include("member/config.php");//判断是退出
$cfg_ml->ExitCookie();//清cookies
}


?>
<?

$deurl="http://www.zidiu.com";//填写您的dedecms的完整URL,前面加“http://”,后面不要加“/”

$detable="dede_"."member";//填写您的dedecms表名前缀
if($_GET=="in"){include("include/common.inc.php");//判断是登陆

$query0 = $db->query("SELECT * FROM {$tablepre}members WHERE username='$_GET'");

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=="out"){include("include/common.inc.php");//判断是退出

clearcookies();//清cookies

}


?>
登陆或退出的时候,同时做cookies操作
整合完毕!

110 | 2019-9-7 13:41 | 显示全部楼层
技术学习教程网,支持一下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
1
贡献
387
丢币
38902
主题
4607
回帖
116
注册时间
2018-9-25
最后登录
2024-4-16