与论坛整合实现一站通

来源:互联网 发布:沉迷网络的危害事例 编辑:程序博客网 时间:2024/04/30 21:46
修改说明: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 mybbsdirMyBbsDir = "/" ''你论坛所在目录Class Cls_ForumRem 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=0response.ExpiresAbsolute=now()-1response.AddHeader "pragma","no-cache"response.AddHeader "cache-control","private"response.CacheControl="no-cache"找到第125行: Dim comeurlnameIf instr(lcase(request("comeurl")),"reg.asp")>0 or instr(lcase(request("comeurl")),"login.asp")>0 or trim(request("comeurl"))="" Thencomeurlname=""comeurl="index.asp"Elsecomeurl=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=0response.ExpiresAbsolute=now()-1response.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
原创粉丝点击