亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net
您需要 登录 才可以下载或查看,没有账号?立即注册
x
hdwiki是国内开源wki结构简单,安装使用还是很方便的。discuz是使用最多的开源BBS。
hdwiki虽然在官方说可以已经与discuz无缝对接,但是实际中使用会发现对接后会出现不少的问题,比如说:在hdwiki注册后很多的信息在discuz中是错误的;而且对接前的用户hdwiki也没有处理。最重要的是,hdwiki登录机制保存用户名和密码是有安全问题的,不如discuz设计得安全方便。所以对于老discuz的用户,大家还是非常想使用discuz的登录页面和登录验证机制。
最近我对2者研究了一下,进行一下相关改造,实现了hdwiki使用discuz的登录和注册机制。对程序的修改也是尽可能的少,同时尽可能的考虑了可扩展性。
主要有2方面工作要做:
1、用户同步,将老discuz的用户导入hdwiki;
2、discuz登录和注册的时候hack进hdwiki的登录和注册。
要求:
1、本例是以discuz用户为基准,如果以hdwiki为准的话,需要自己修改第一步骤。所以最好是已经安装discuz后再安装hdwiki。
2、对discuz数据库配置参数可以直接访问hdwiki数据库,也就是要求两都要在同一台服务器上,如果在不同服务器上也是可以实现,可是我不需要:)
3、discuz数据库名为discuz,hdwiki数据库名为hdwiki。对于读者请自行更改对应的数据库名。
具体实现:
-、将discuz用户导入hdwiki中
我使用的sql语句来进行的相关操作
1、先执行: insert into hdwiki.hdwiki_user(
user_id,user_email,user_nick,user_nick_upper,user_password
,user_city,user_sex,user_address,user_birthday
,user_qq,user_msn
,user_intro
,user_reg_time
) SELECT
m.uid,m.email,m.username,upper(m.username),m.password
,mf.site,m.gender,mf.location,m.bday
,mf.qq,mf.msn
,mf.sightml
,FROM_UNIXTIME(m.regdate)
FROM discuz.cdb_members m
LEFT JOIN discuz.cdb_memberfields mf ON m.uid=mf.uid
WHERE m.uid>2
2、再执行:
update hdwiki.hdwiki_user
set
user_small_ico='uploads/userface/face.gif',user_big_ico='uploads/userface/face.gif',usergroup_id=2,state=1
where user_id>2; 以上就是将discuz的用户导入到hdwiki中。 二、修改程序文件 1、添加一个模块文件,在注册与登录过程调用hdwiki的用户 discuz/include/hdwiki_user.php 下载链接 2、修改discuz/loggin.php 找到代码: $discuz_user = $discuz_pw = '';
$styleid = $_DCACHE['settings']['styleid'];
在下面添加: include_once './include/hdwiki_user.php';
找到代码
$sessionexists = 0;
在下面添加: //-- hdwiki login
include_once './include/hdwiki_user.php'; 3、修改discuz/register.php 找到: $groupid = $groupinfo['groupid'];
$styleid = $styleid ? $styleid : $_DCACHE['settings']['styleid'];
在下面添加: // hdwiki register
include_once './include/hdwiki_user.php';
4、修改hdwiki/sitetop.php
找到: @$arr_user_info=reloadUser();
$tpl->assign($arr_user_info); 在下面添加: $_DCACHE['settings']['authkey'] = 'CMUS6ipYZr0EJZ4';
$discuz_auth_key = md5($_DCACHE['settings']['authkey'].$_SERVER['HTTP_USER_AGENT']);
$formhash = substr(md5(substr(time(), 0, -7).$arr_user_info['user_nick'].$arr_user_info['user_id'].$arr_user_info['user_password'].$discuz_auth_key), 8, 8);
$tpl->assign("formhash",$formhash);
其中$_DCACHE['settings']['authkey']的值请查找你的discuz/forumdata/cache/cache_settings.php文件,找到 'authkey'对应的值,如果这个值添加写错误将不能正常退出。
5、修改hdwiki/templates/default/sitetop.html
将代码: <a href="/club/logging.php?action=logout">退出</a> 修改成:注意添加formhash <a href="/club/logging.php?action=logout&formhash=2ee9b36d&referer=/wiki/index.php">退出</a> 将代码:
<a href="logging.php">我要登录</a> | <a href="register.php">注册</a> 修改成:
<a href="/club/logging.php?action=login&referer=/wiki/index.php">我要登录</a> | <a href="/club/register.php?referer=/wiki/index.php">注册</a>
道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题!
如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服!
如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务! |