发新话题
打印

分享nt discuz 结合经验,并手把手提供整合代码!

分享nt discuz 结合经验,并手把手提供整合代码!

虽然nt discuz 开源,IT世界网论坛也使用NT discuz  论坛,但对于一些新站长可能对整合论坛还是有一些无从下手,特别是对于那些不懂asp 又特别喜欢建站的 站长们。现在偶分享一下偶整合论坛的过程。
      偶思路:在注册的时候分别同时向主站的会员表,和论坛的会员表写入数据。

方法一、(不推荐)
相关代码提供如下:
复制内容到剪贴板
代码:
sqlbbs="select * from dnt_users"
set rsbbs=server.CreateObject("adodb.recordset")
rsbbs.Open sqlbbs,conn,1,3
rsbbs.AddNew
  rsbbs("username")=uid
    rsbbs("nickname")=nickname
rsbbs("password")=MD5(passwd)
rsbbs("groupid")=10
rsbbs("email")=email
  rsbbs("regip")=regip
  rsbbs("joindate")=now()
rsbbs.Update
rsbbs.Close
set rsbbs=nothing

sqlbbs="select * from dnt_userfields"
set rsbbs=server.CreateObject("adodb.recordset")
rsbbs.Open sqlbbs,conn,1,3
rsbbs.AddNew

rsbbs.Update
rsbbs.Close
set rsbbs=nothing
加入如下代码就是注册的时候分别向会员表:dnt_users 和表dnt_userfields写入数据,
但是有个缺点:
1、要把表dnt_userfields 的ID值设置为主键  才可以,
2、新注册会员后,在论坛没有同时更新“欢迎新会员×××”,需加如下更新代码即可:sql="update [dnt_statistics] set totalusers=totalusers+1,lastusername='"&新会员名&"',lastuserid='"&新会员id&"'"set rs=conn.execute(sql)


方法二:

      思路:asp页面,注册ntdiscuz论坛,实际上要向论坛写入三个表,分别是:dnt_users  dnt_userfields   dnt_userfields,共用Cookies,实现注册后即自动登陆主站和论坛;注:Discuz!NT的Cookie是用DES加密的,所以要删除DES加密过程。

1、需添加如下代码:
复制内容到剪贴板
代码:
sql="insert into [dnt_users] (username,nickname,password,gender,adminid,groupid,groupexpiry,extgroupids,regip,joindate,lastip,lastvisit,lastactivity,lastpost,lastpostid,lastposttitle,posts,digestposts,oltime,pageviews,credits,extcredits1,extcredits2,extcredits3,extcredits4,extcredits5,extcredits6,extcredits7,extcredits8,avatarshowid,email,bday,sigstatus,tpp,ppp,templateid,pmsound,showemail,newsletter,invisible,newpm,newpmcount,accessmasks,onlinestate) values ('"&uid&"','"&nickname&"','"&MD5(Passwd)&"',0,0,10,0,'                                                            ','"®ip&"','"&now()&"','"®ip&"','"&now()&"','"&now()&"','"&now()&"',0,'                                                            ',0,0,0,0,0,'0.00','0.00','0.00','0.00','0.00','0.00','0.00','0.00',0,'"&email&"','          ',1,0,0,0,1,1,1,0,1,1,0,1)"
set rs=conn.execute(sql)

sql="select uid from [dnt_users] where username='"&uid&"'"
set rs=conn.execute(sql)
dntuid=rs(0)

sql="insert into [dnt_userfields] (uid,avatar,avatarwidth,avatarheight,authtime,authflag) values ('"&dntuid&"','avatars\common\0.gif',0,0,'"&now()&"',0)"
set rs=conn.execute(sql)

sql="update [dnt_statistics] set totalusers=totalusers+1,lastusername='"&uid&"',lastuserid='"&dntuid&"'"
set rs=conn.execute(sql)
2、去掉DES加密:

第一步,先去 DNT官方下载源码 http://www.discuznt.com/opensource.html 找到适合自己的版本。
我下载 SQLServer版 (.net Framework2.0)

第二步,按照dnt_sql_n2_1_src.zip里的帮助,用VS打开这个项目 第三步,打开 \Forum\ForumUtils.cs 大约350行开始

第一处:找到  public static string GetCookiePassword(string key)  {            return DES.Decode(GetCookie("password"), key).Trim();  }修改为  public static string GetCookiePassword(string key)  {            return GetCookie("password").Trim();  }

-----------------------------------------------------------------------------------------

第二处:找到  public static string GetCookiePassword(string password, string key)  {            return DES.Decode(password, key);  }修改为  public static string GetCookiePassword(string password, string key)  {            return password;  }

-----------------------------------------------------------------------------------------
第三处:找到  public static string SetCookiePassword(string password, string key)  {  //  if (password.Length < 32)  //  {  //    password = password.PadRight(32);  //  }            return DES.Encode(password, key);  }修改为  public static string SetCookiePassword(string password, string key)  {  //  if (password.Length < 32)  //  {  //    password = password.PadRight(32);  //  }            return password;  }

第四步:重写编译就可以拉 特别注意:Discuz!NT官方发布的源码版(如:dnt_sql_n2_1_src.zip)和安装版(如:dnt_sql_n2_1.zip) 版本不一致(可以去官方下载对比bin文件即可知道),所以不能将用源码版编译的DLL给安装版用,必须都用源码版的。

3、去论坛后台设置一下共用域就OK:

      方法:登陆论坛------系统设置------Discuz!NT选项------其他设置------身份验证Cookie域格式:.你的域名;例:.585.com.cn)一切OK,大功告成,就是这么简单。
源码在线论坛
专注于互联网源码资源的推广与应用,中国最大的源码交易论坛!
源码交易、团购、任务以及商业源码出售。QQ:215453008
www.codeol.com
               Google 提供的广告

TOP

哈哈终于抢到沙发拉
俺是新手以后希望多多指教

TOP

支持楼主,帮你顶一下.

支持楼主,帮你顶一下.

TOP

北京快递公司

提示: 作者被禁止或删除 内容自动屏蔽

TOP

发新话题