ASP个人网站与动网整合非官方方法
关于个人网站整合动网论坛系统的挑战与突破
对于拥有会员注册模块和动网论坛的个人网站而言,实现不同Web系统间的用户信息同步更新、登录等操作是一项颇具挑战性的任务。尽管动网提供了详尽的“动网论坛系统Api接口开发人员指南”,但对于我等新手而言,初时难免感到迷茫。
经过对登录、验证等函数的深入研究和测试,我最终取得了不小的进展。本次测试的论坛版本为Version 7.1.0 Sp1,其他版本尚未进行测试。
一、网站文件概述
网站的文件结构清晰明了,主要包含了index.asp(首页)、CheckUserLogin.asp(用户登录验证页面)以及bbs/(论坛目录)。
二、整合核心思路
其实,同步更新的实现并不困难,关键在于解决同步登录的问题。我们的重点应放在如何实现这一功能。为此,我采取了将主站用户表整合至动网用户表Dv_User中的策略,这样可以避免以后需要更新两个库的麻烦。根据需求,我们可以在Dv_User中新增字段,以满足主站与动网之间的数据交互。
三、具体实现方法
1. 修改bbs/login.asp和bbs/inc/Dv_ClsMain.asp文件,以适应主站与动网之间的登录验证需求。
2. 当用户进行登录操作时,表单数据将发送到bbs/login.asp进行验证。
3. 主站可根据动网登录成功后Session中记录的信息来判断登录是否成功,并获取用户资料。
三、新增修改文件
1. index.asp代码:
```html
<%
If CheckUserLogin Then
Response.write("退出登录")
Response.write("用户名:" & Request.Cookies("username") & "
")
Response.write("性别:" & Request.Cookies("sex") & "
")
Response.write("注册时间:" & Request.Cookies("joindate") & "
")
Response.write("登录时间:" & Request.Cookies("lastlogin") & "
")
Response.write("登录次数:" & Request.Cookies("userlogins") & "
")
Response.write("浏览器类型:" & Request.Cookies("browser") & "
")
Response.write("浏览器版本:" & Request.Cookies("version") & "
")
Response.write("操作系统:" & Request.Cookies("platform") & "
")
Else
%>
<%
End If
%>
```
2. CheckUserLogin.asp代码:
```asp
<%
Function CheckUserLogin()
Dim Dvbbs, UserSession
Const MsxmlVersion=".3.0"
Set Dvbbs = New Cls_Forum
Set UserSession=Server.CreateObject("msxml2.FreeThreadedDOMDocument"&MsxmlVersion)
If UserSession.loadxml(Session(Dvbbs.CacheName & "UserID")&"") Then
If UserSession.documentElement.selectSingleNode("userinfo/@userid").text<> "0" Then
'在论坛登录成功
CheckUserLogin = True
'下边是用户一些信息的获取方法,可自行将其保存于Cookies或Session中便于使用:
'用户ID : UserSession.documentElement.selectSingleNode("userinfo/@userid").text
'用户名 : UserSession.documentElement.selectSingleNode("userinfo/@username").text
'生日 : UserSession.documentElement.selectSingleNode("userinfo/@userbirthday").text
'电子 : UserSession.documentElement.selectSingleNode("userinfo/@useremail").text
'性别 : UserSession.documentElement.selectSingleNode("userinfo/@usersex").text '0为女,1为男
'注册时间 : UserSession.documentElement.selectSingleNode("userinfo/@joindate").text
'登录时间 : UserSession.documentElement.selectSingleNode("userinfo/@lastlogin").text
'登录次数 : UserSession.documentElement.selectSingleNode("userinfo/@userlogins").text
'金钱 : UserSession.documentElement.selectSingleNode("userinfo/@userwealth").text
'积分 : UserSession.documentElement.selectSingleNode("userinfo/@userep").text
'魅力 : UserSession.documentElement.selectSingleNode("userinfo/@usercp").text
'登录IP : UserSession.documentElement.selectSingleNode("userinfo/@userlastip").text
'浏览器类型 : UserSession.documentElement.selectSingleNode("agent/@browser").text
'浏览器版本 : UserSession.documentElement.selectSingleNode("agent/@version").text
'操作系统 : UserSession.documentElement.selectSingleNode("agent/@platform").text 访问信息获取完成并存入Cookies中拓展Dv_User表以满足需求演变
当默认的Dv_User表字段无法满足我们的实际需求时,扩展其功能是明智之举。接下来,让我们一起动手进行扩展。
步骤一:打开Dv_User表,新增一个文本类型的字段——info_1。这个字段将用于存储用户的额外信息。
步骤二:进入bbs/login.asp的ChkUserLogin函数。在这里,我们需要修改Sql查询语句,以包含新添加的info_1字段。修改后的Sql语句如下:
选择UserID、UserName、UserPassword等基础信息字段外,还包含新加入的info_1字段。确保信息的完整性并满足后续的查询需求。
步骤三:在bbs/inc/Dv_ClsMain.asp的TrueCheckUserLogin函数中同样需要更新Sql查询语句,包含info_1字段。这一步是为了在用户登录验证过程中获取到完整的用户信息。
步骤四:在CheckUserLogin.asp中,我们要在用户会话中新增一个名为“info_1”的Cookie,用于存储用户新增的信息。这样,我们可以方便地获取和使用这个信息。具体实现是:
Response.Cookies("info_1") = UserSession.documentElement.selectSingleNode("userinfo/@info_1").text
步骤五:在index.asp中,我们要展示新增的info_1信息。通过Response.write方法,我们可以将操作系统信息和新增的info_1信息一起展示给用户。这样,用户在访问网站时可以看到更多关于自己的信息。
步骤六:恭喜您圆满完成了Dv_User表的扩展!您的系统现在能够获取并使用用户的新增信息,更好地服务于用户,提升用户体验。
通过以上步骤,我们成功地扩展了Dv_User表,并更新了相关的函数和代码,以获取和使用新增的用户信息。这不仅能够满足实际需求,还能提升系统的功能和用户体验。
平面设计师
- ASP个人网站与动网整合非官方方法
- 微信JS接口汇总及使用详解
- PHP中abstract(抽象)、final(最终)和static(静态)原理与
- Angular实现响应式表单
- 小巧强大的jquery layer弹窗弹层插件
- PHP常用编译参数中文说明
- Express实现前端后端通信上传图片之存储数据库(
- ADO.NET无连接模式的详细介绍
- 基于jQuery实现多标签页切换的效果(web前端开发
- php实现有序数组打印或排序的方法【附Python、C及
- 省市联动效果的简单实现代码(推荐)
- 编写自己的jQuery提示框(Tip)插件
- PHP设计模式之简单投诉页面实例
- PHP的curl函数的用法总结
- asp.net5中用户认证与授权(2)
- IE浏览器下PNG相关功能