繁体中文
设为首页
加入收藏
当前位置:网站制作首页 >> 其它 >> 动易2005整合论坛范例讲解

动易2005整合论坛范例讲解

2008-05-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:整合环境:动易2005SP1正式版+Dvbbs7.1.0_AC正式版 整合前提:两套系统已分别安装调试完毕,均已正常运行 两套系统均为官方最新标准版本,之前未做任何修改 说明:由于动易2005SP1正式版已内置对整合接口的支持,...
关键字:范例 整合 论坛 2005

整合环境:动易2005SP1正式版+Dvbbs7.1.0_AC正式版

整合前提:两套系统已分别安装调试完毕,均已正常运行

两套系统均为官方最新标准版本,之前未做任何修改

说明:由于动易2005SP1正式版已内置对整合接口的支持,无需修改

整合接口文件说明:

1:UserInfo.ASP ----动易2005用户Cookies通用接口文件

2:PE_User.ASP ----为动网系统特别编写的处理通行注册、登陆、密码同步等事件的文件

整合过程:

1:将UserInfo.ASP放到网站根目录下;

2:将PE_User.ASP放到论坛根目录下;

3:修改论坛文件

动网7.x版的论坛整合共需修改以下文件:

1. Inc/Dv_ClsMain.ASP --核心类文件,修改其以自动监测用户的登陆、注销、注册状态;

2. Conn.ASP --核心数据链接及全局类初始化文件,修改其以初始化通行接口的类;

3. login.ASP --论坛登陆文件,修改其以实现对通行登陆的支持;

4. LOGOut.ASP --论坛注销文件,修改其以实现对通行注销的支持;

5. reg.ASP --论坛注册文件,修改其以实现对通行注册的支持;

正式开始修改文件之前,应该明确UserInfo.ASP提供的属性和函数,以及PE_User.ASP的使用;

[UserInfo.ASP]

该文件中定义了实现动易Cookies信息调用的类,用户无需修改,只要将该文件放置到网站根目录,并在任意ASP文件中包含该文件,就可以使用PE_UserInfo这个类,并通过读取该类提供的8个公用属性和1个公用函数来调用动易的相关资料。列举如下:

公用属性:

PE_Dir: 动易的安装目录;

Site_Sn: 动易的Cookies名称;

UserName: 已经登陆动易的当前用户的用户名

Password: 已经登陆动易的当前用户的密码(16位MD5加密形式)

Email: 已经登陆动易的当前用户的Email

Question: 已经登陆动易的当前用户的密码提示问题

Answer: 已经登陆动易的当前用户的密码提示问题答案(16位MD5加密形式)

CookieDate: 已经登陆动易的当前用户设置的Cookies保存选项(0=不保存;1=保存1天;2=保存一月;3=保存一年)

公用函数:

Sex(ctype):已经登陆动易的当前用户的性别。

说明:该函数包含一个数值型参数,取值范围0-2(0=返回数字形式:0表示女性,1表示男性;1=返回字符形式:"男"表示男性,"女"表示女性; 2=返回字符形式:"male"表示男性,"female"表示女性)

[PE_User.ASP]

该文件根据所接收到的URL请求的action来判断并执行相应的操作。

action:

reg: 当收到action=reg的URL请求时,会提示用户输入密码激活论坛身份;

login: 当收到action=login的URL请求时,会自动进行同步登陆(密码必须一致)

pass: 当收到action=pass的URL请求时,会提示用户输入论坛密码以进行登陆

pass3: 当收到action=pass3的URL请求时,会自动将论坛密码改为和用户的动易密码一样,并进行登陆

了解了通用接口和PE_User.ASP之后,接下来修改论坛文件以完成整合:

1.Conn.ASP

Conn.ASP通常是论坛程序定义数据库链接的文件,因此这个文件中定义的变量、函数、过程可以在任何文件中使用,所以我们选择把通用接口类的初始化放在这个文件中。

a)在Conn.ASP的第5行左右,找到

=========查找代码========

Option Explicit

Response.Buffer = True

Dim Startime

=========================

修改为:

===========修改后的代码==========

Option Explicit

Response.Buffer = True

%>

<%

Dim Startime

=============================

b)在Conn.ASP的第7、8行左右,找到

=========查找代码============

Dim Conn,Plus_Conn,Db,MyDbPath

Startime = Timer()

=============================

修改为:

===========修改后的代码==========

Dim Conn,Plus_Conn,Db,MyDbPath

'定义动易通用接口类

Dim MyPE

'完毕

Startime = Timer()

=================================

c)在Conn.ASP的32、33行左右,找到

=========查找代码============

Set template = New cls_templates

Sub ConnectionDatabase

=============================

修改为:

===========修改后的代码==========

Set template = New cls_templates

'初始化动易通用接口类

Set MyPE = New PE_UserInfo

'完毕

Sub ConnectionDatabase

=================================

Conn.ASP的修改完毕

2.Inc/Dv_ClsMain.ASP

Dv_ClsMain.ASP中是动网论坛定义了动网论坛所有核心的类和属性等,每次用户刷新一个页面,都会由这个文件中的函数、事件等来判断是否登陆等信息,因此我们要把检测和判断登陆、注册、注销等放在这个文件中:

a)在Dv_ClsMain.ASP的704-706行找到:

=========查找代码============

'当在120秒内刷新同一个页面则不更新online数据

If DateDiff("s",ReFlashPageLastTime,Now()) 0 Then Exit Sub

'更新数组

=============================

修改为:

===========修改后的代码==========

'当在120秒内刷新同一个页面则不更新online数据

'当通行注册和通行登陆时,避开120内刷新同一页面的限制

If Instr(ScriptName,"index") <= 0 or Instr(ScriptName,"pe_user") <= 0 or Instr(ScriptName,"log") <= 0 or Instr(ScriptName,"reg") <=0 Then

If DateDiff("s",ReFlashPageLastTime,Now()) 0 Then Exit Sub

End If

'完毕

'更新数组

=================================

b)在Dv_ClsMain.ASP的1039行到1040行,找到Footer过程的结束部分:

=========查找代码============

Response.Write Tmp

End Sub

=============================

修改为:

===========修改后的代码==========

Response.Write Tmp

'检测通行登陆与注销

If IsArray(Session(CacheName & "UserID")) And UserID = 0 And Instr(ScriptName,"pe_user") <= 0 And Instr(ScriptName,"log") <= 0 And Instr(ScriptName,"reg") <= 0 And Instr(ScriptName,"admin") <= 0 And Instr(ScriptName,"showerr") <=0 Then

If MyPE.UserName "" And MyPE.Password "" Then

Call PE_User("in")

End If

Else

If MyPE.UserName = "" or MyPE.Password = "" Then

Call PE_User("out")

End If

End If

'完毕

End Sub

=================================

c)在Dv_ClsMain.ASP的1521-1522行找到Class Cls_Forum的结束部分:

=========查找代码============

End Sub

End Class

=============================

修改为:

===========修改后的代码==========

End Sub

'支持动易的整合函数

Sub PE_User(aAction)

Response.Write "" & vbCrLf

End Sub

'完毕

End Class

=================================

3.login.ASP

login.ASP是动网论坛显示登陆界面、完成登陆检验等和登陆相关的一系列事务的文件,我们需要修改它以支持通行登陆:

a)在login.ASP的18-19行找到以下代码:

=========查找代码============

Case "chk"

Dvbbs_ChkLogin

=============================

修改为:

===========修改后的代码==========

Case "chk"

'如果不是通行登陆,要求用户先登录主站

If trim(request("pe")) = "" Then Response.redirect "showerr.ASP?ErrCodes=您必须登陆主站以后才能登陆论坛&action=OtherErr"

'完毕

Dvbbs_ChkLogin

=================================

b)在login.ASP的55-56行找到以下代码:

=========查找代码============

End If

TempStr = Replace(TempStr,"{$comeurl}",Comeurl)

=============================

修改为:

=========修改后的代码============

End If

ComeUrl = Dvbbs.Get_ScriptNameUrl & ComeUrl

Response.Redirect MyPE.PE_Dir & "User/User_Login.ASP?ComeUrl="&ComeUrl

TempStr = Replace(TempStr,"{$comeurl}",Comeurl)

=============================

c)在login.ASP的97-100行找到以下代码:

=========查找代码============

Else

password=md5(trim(Dvbbs.CheckStr(request("password"))),16)

If Request("password") = "" Then password = ""

End If

=============================

修改为:

=========修改后的代码============

'当不是自动登陆时,加密用户输入的密码

ElseIf Request.Form("pe") "true" Then

password=md5(trim(Dvbbs.CheckStr(request("password"))),16)

If Request("password") = "" Then password = ""

'自动登录时,不加密Cookies中已加密的密码

Else

password=trim(Dvbbs.CheckStr(request("password")))

'完毕

End If

=============================

4.LOGOut.ASP

LOGOut.ASP实现的功能是用户注销,我们只要在任何时候让用户跳转到这个页,他就会被注销,我们在这个文件中加入同步注销动易登陆的代码:

a)在LOGOut.ASP的33-34行找到以下代码:

=========查找代码============

Response.Cookies(Dvbbs.Forum_sn)("usercookies")=""

Session(Dvbbs.CacheName & "UserID")=Empty

=============================

修改为:

=========修改后的代码============

Response.Cookies(Dvbbs.Forum_sn)("usercookies")=""

'清理动易的Cookies

Response.Cookies(MyPE.Site_Sn)("UserName")=""

Response.Cookies(MyPE.Site_Sn)("UserPassword")=""

Response.Cookies(MyPE.Site_Sn)("LastPassword")=""

Response.Cookies(MyPE.Site_Sn)("CookieDate")=""

Response.Cookies(MyPE.Site_Sn)("Email")=""

Response.Cookies(MyPE.Site_Sn)("Question")=""

Response.Cookies(MyPE.Site_Sn)("Answer")=""

Response.Cookies(MyPE.Site_Sn)("Sex")=""

'完毕

Session(Dvbbs.CacheName & "UserID")=Empty

=============================

5.reg.ASP

reg.ASP是动网论坛注册、全网认证注册等和注册有关的功能集中实现的文件,我们只要修改这个文件,就可以实现通行注册的全部修改:

a)在reg.ASP的35-36行,找到如下代码:

=========查找代码============

If request("action")="apply" Then

Dvbbs.stats=Stats(2)

=============================

修改为:

=========修改后的代码============

If request("action")="apply" Then

'引导其到动易进行注册

Response.Redirect MyPE.PE_Dir & "Reg/User_Reg.ASP"

'完毕

Dvbbs.stats=Stats(2)

=============================

b)在reg.ASP的47-48行找到如下代码:

=========查找代码============

Else

Dvbbs.stats=Stats(1)

=============================

修改为:

=========修改后的代码============

Else

'引导用户到动易进行注册

Response.Redirect MyPE.PE_Dir & "Reg/User_Reg.ASP"

'完毕

Dvbbs.stats=Stats(1)

=============================

c)在reg.ASP的243-244行找到如下代码:

=========查找代码============

answer=Request.form("answer")

Else

=============================

修改为:

=========修改后的代码============

answer=Request.form("answer")

'当来自通行注册的自动注册时,不加密Cookies中已加密的提示问题答案

Elseif Request.form("pe") "" Then

answer=Request.form("answer")

'完毕

Else

=============================

至此,5个需要修改的论坛已经全部修改完成。整合也已完成。如果论坛中原来就已经有注册用户,可以用《动易2005整合专用用户数据同步工具》把论坛的注册用户同步到动易的数据库即可。

责任编辑:admin
相关文章