方法是:利用从
http://bbs.dvbbs.net/dispbbs.asp?Boardid=134&ID=1237421&replyID=2188857&skin=1
下载的 SLogin.asp 文件。 将 下列代码放在 需要登录的网页(自己的主页)上即可。
<iframe src="forum/Slogin.asp" scrolling="no" frameborder = "0" width="100%" height="100" name="I1"></iframe>
反过来, 在论坛先登录,后在一个新浏览器中打开主页时,参以下 两篇文章完成
文章 1 : http://www.xpb.cn/blog/article.asp?id=407
文章为一个朋友原创,帮发了上来,转载请注明出处。
修改说明:
1、本方法适用于动网论坛 Dvbbs ver7.0及其以上版本,access数据库2000版本及其以上。
2、本修改方法仅供技术讨论和参考,修改前请先备份您的数据库,因为修改所带来的数据丢失等问题,本站概不负责。
一、数据库的合并方法:
首先,假设要合并到的(即合并后你将用在论坛上的)数据库文件为dvbbs.mdb、被合并的(即合并后你就除去了不要的)数据库文件为database.mdb
①先到以dvbbs.mdb作数据库的论坛后台,去新建所没有的database.mdb中的分论坛;(举例:dvbbs论坛中有甲、乙分论坛,database论坛中有甲、丙分论坛,你就要在前者论坛中把丙给建上,包括类别下面的二级分论坛你都要筹备好,免得database合并过来的数据在dvbbs中找不到原来关系而失败)
②将dvbbs.mdb、database.mdb都下载到本地机上,并把这两个文件各复制出备份;(注意一下的操作均不可逆,因此请务必备份更好原来的数据库。)
③打开dvbbs.mdb,点文件--获取外部数据--链接表,找到database.mdb,点链接;
④点所显示链接表中的forum表、再按住ctrl键点reforum表,点确定;
⑤右击已链接过来的forum1表,点复制,再对着旁边空白处点粘贴,点将数据追加到已有表,在表名称栏中填forum,点确定;
⑥右击已链接过来的reforum1表,按⑤的步骤如法炮制(只是表名称栏要填reforum);
⑦将列表中的forum1和reforum1两个链接表删除。这样两个库就合并了(database合并到dvbbs中去了)!
然后,你将dvbbs.mdb库上传至空间,进入后台的论坛管理操作,把原database的那些分论坛里的帖子移动到dvbbs应有的分论坛中,再删掉database的分论坛。两个论坛也告合并成功,登录论坛后台重新建立缓存和更新论坛所有数据!
二、动网论坛的修改
1.动网论坛cookies全站通用的方法
打开inc/Dv_ClsMain.asp
这一步的主要目的是将论坛的COOKIE名称定义为通用名称
在本文件的开头定义变量
dim mybbsdir
MyBbsDir = "/" ''你论坛所在目录
Class Cls_Forum
Rem Const
找到第28行(增加上两行后就是第31行),本行原文是:
CacheName=Replace(Replace(Replace(Server.MapPath("index.asp"),"index.asp",""),":",""),"\","")改为
CacheName = "happy"
找到第31行(增加上两行后就是第34行),本行原文是:
Forum_sn = CacheName:Vipuser = False:Boardmaster = False
改为
Forum_sn = "happy"
2)更改Cookies目录 这一步的主要目的将论坛的cookies目录定义为全局目录,即根目录"/"
①打开inc/Dv_ClsMain.asp
寻找 Response.Cookies(Forum_sn).path=cookiepath
应该共有三个
替换为:
Response.Cookies(Forum_sn).path="/"
② 打开login.asp
寻找 Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath
应该共有五个,其中一个是:Response.Cookies(Dvbbs.Forum_sn).path = Dvbbs.cookiepath(等号两旁有空格)
替换为:
Response.Cookies(Dvbbs.Forum_sn).path="/"
③ 打开logout.asp
寻找 Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath 第27行
应该只有一个
替换为:
Response.Cookies(Dvbbs.Forum_sn).path="/" 至此,修改完毕,即可以达到cookies全站通用的目的了。
2. 更改用户登陆是返回地址:
① 打开login.asp
在这个文件的代码开始加入
response.Expires=0
response.ExpiresAbsolute=now()-1
response.AddHeader "pragma","no-cache"
response.AddHeader "cache-control","private"
response.CacheControl="no-cache"
找到第125行:
Dim comeurlname
If instr(lcase(request("comeurl")),"reg.asp")>0 or instr(lcase(request("comeurl")),"login.asp")>0 or trim(request("comeurl"))="" Then
comeurlname=""
comeurl="index.asp"
Else
comeurl=request("comeurl")
comeurlname="<li><a href="&request("comeurl")&">"&request("comeurl")&"</a></li>"
End If改为
response.Redirect(request.servervariables("http_referer"))
session.Contents("URL")=Request.ServerVariables("URL") &"?"& Request.ServerVariables("Query_String")
Response.Redirect(session("URL"))
②打开logout.asp
在这个文件的代码开始加入
response.Expires=0
response.ExpiresAbsolute=now()-1
response.AddHeader "pragma","no-cache"
response.AddHeader "cache-control","private"
response.CacheControl="no-cache"
寻找第36行
Response.Redirect Dvbbs.Forum_Info(11)
改为
response.Redirect(request.servervariables("http_referer"))
session.Contents("URL")=Request.ServerVariables("URL") &"?"& Request.ServerVariables("Query_String")
Response.Redirect(session("URL"))3.修改后台的cookies名称,否则你将无登陆动网论坛的后台
① 打开admin/ReloadForumCache.asp
寻找第11行
Dvbbs.CacheName = Lcase(Replace(mCacheName,":",""))
Dvbbs.Forum_sn = Replace(Dvbbs.CacheName,"_","")
改为:
Dvbbs.CacheName = "happy"
Dvbbs.Forum_sn = "happy"
②打开admin/inc/const.asp
寻找第15行
Dvbbs.CacheName = Lcase(Replace(mCacheName,":",""))
Dvbbs.Forum_sn = Replace(Dvbbs.CacheName,"_","")
改为:
Dvbbs.CacheName = "happy"
Dvbbs.Forum_sn = "happy"
好了,动网论坛修改完了 到了这里,你的整个网站就都可以使用论坛的cookies了,而且登陆和退出时都会自动返回你所在的页面 你可以在其他地方取的COOKIES数据为: Request.Cookies("happy")("username") ''用户名,对应[dv_user]表的username字段
Request.Cookies("happy")("password") ''用户随机密码,对应[dv_user]表的truepassword字段
Request.Cookies("happy")("userid") ''用户id,对应[dv_user]表的userid字段 主要修改部分就这么多,其他的目录权限设置等等,请自行解决!
三、对网站登陆框的修改
到这一步,我们首先看一下动网论坛的登陆框代码:
<td class=lefttopcenter>※ 会员登陆</td><td class=lefttopright></td></tr></table>
<table border="0" cellspacing="0" cellpadding="0"><tr>
<td valign=top class=leftcentercenter height=170><div>
<form method="post" action="login.asp?action=chk"><table><td height=5></td></table>
用户名: <input name="username" type="text" style="100px" maxlength=’20’ class="yecao"><table><td height=5></td></table>
密 码:<input name="password" type="password" style="100px" maxlength="20" class="yecao"><table><td height=5></td></table>
保存期: <select name="CookieDate" class="yecao">
<option value="0" selected>不保留</option>
<option value="1">保留一天</option>
<option value="30">保留一个月</option>
<option value="365">保留一年</option>
</select><table><td height=5></td></table>
<input name="submit" type="submit" value="登 录" class="put" onmouseover="this.className=’overput’"" onmouseout="this.className=’put’" class="put">
<input name="reg" onclick=’window.location=" reg.asp"’ type="button" value="注 册" class="put" onmouseover="this.className=’overput’"" onmouseout="this.className=’put’" class="put"fs>
</form><table><td height=5></td></table>
<center><a href=" lostpass.asp">找回密码</a></center>
在我们的网站登陆文件中,只要使用动网论坛的表单名称及登陆文件,注册,找回密码文件就可以了!
参考资料:
整合全站方法-动网论坛7版用户cookie及登陆全站共享的修改方法 中国维修网-惊云
=======================================
文章 2:http://www.hotrich.com/blog/article.asp?id=20
wenzhang 1中,提到的“...应该共有三个....”估计是 Dvbbs较早版本的情况,文章2中,提到仅有一处符合自己的情况,自己用的是Dvbbs ver7.1 SP1。
文章2 的具体内容见,题为“合动网用户登陆 http://www.hotrich.com/blog/article.asp?id=20 ”的 收录在cnblogs.com/cy163 中的文章。
首先,在一个浏览器中直接打开论坛,登陆成功后(注意登录时,要选择保持Cookie);然后,新开一个浏览器窗口,如何感知此刻已处于登录状态呢?,在自己的主页是利用
request.Cookies("DvForum")("username")不为空来做判断的。
l