解决 在 自己 “主页登录”后, 在新打开的浏览器中,打开Dvbbs论坛时,自动登录的问题, verse visa

方法是:利用从
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="width:100px" maxlength=’20’ class="yecao"><table><td height=5></td></table>

    码: <input name="password" type="password" style="width: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


你可能感兴趣的:(浏览器)