ver.mappath("*.mdb")
3).创建数据库对象
Setrs=Server.CreateObject("adodb.recordset")
4).关闭数据对象和链接
Rs.close
Setrs=nothing
Conn.close
Setconn=nothing
3.2旅游网站系统创建的数据库
系统共用了1个数据库,数据库中包含2个表,分别是:
1).admin(管理员登陆表):
字段名称
数据类型
字段大小
说明
user(管理员名)
文本
12
pwd(口令)
文本
12
2).new(新闻表):
字段名称
数据类型
字段大小
说明
ID(编码)
自动编号
长整型
每添加一条记录时自动加1
biaoti(标题)
文本
50
fubiaoti(副标题)
文本
50
mm(月份)
文本
2
dd(日期)
文本
2
zuozhe(作者)
文本
12
tupian(图片)
文本
50
zhuti(新闻主体)
备注
备注型
time(时间)
时间/时期
格式为中期;默认值为:date()
4.基于ASP的用户认证设计
4.1基于服务器的提间和响应
在ASP中,防止被恶意破坏ASP脚本,进而对数据库的破坏,可以通过检查用户的用户名和口令来建立基本的认证方案,一般情况下,基于服务器的提间和响应顺序如下:
1).用户从服务器上请求一个文件,如果这个文件在服务器上是被保护的,则检查用户cookies中的用户名和密码。
2).浏览器收到这个响应后,如果Cookies的用户名、口令为合法用户就将向用户开放,此被保护的文件,并且只要用户还在使用文件,谁会一直有效。如果不合法刚弹出要求用户输入用户名、口令的对话框;
3).用户在对话框图中输入一个用户名和口令,点击确定按扭将信息返回服务器供认证使用;
<%'通过表单得到用户写入的用户名和口令,跟数据库中的比较,如果合法则为用户开放,否则跳转登陆对话框。
response.cookies("user")=""
response.cookies("adminok")=""
user=trim(request.form("user"))
pwd=trim(request.form("pwd"))%>
<%ifuser<>""andpwd<>""then%>
<%
setrsadm=server.createobject("adodb.recordset")
sqladm="select*fromadminwhereuser='"&user&"'"
rsadm.opensqladm,conn,1,1
ifnotrsadm.eofthen
ifrsadm("pwd")=""then
response.redirect"glydl.asp"
endif
ifpwd=rsadm("pwd")then
response.cookies("user")=rsadm("user")
response.cookies("adminok")=rsadm("pwd")
response.redirect"newsdl.asp"
else
response.redirect"glydl.asp"
endif
else
endif
response.redirect"glydl.asp"
rsadm.close
setrsadm=nothing
endif%>
<%'##检查cookies中的密码,错误侧自动返回
setrsadm=server.createobject("adodb.recordset")
sqladm="select*fromadmin"
rsadm.opensqladm,conn,1,1
ifrequest.cookies("adminok")<>rsadm("pwd")orrequest.cookies("adminok")=""orrequest.cookies("user")<>rsadm("user")orrequest.cookies("user")=""then
response.redirect"glydl.asp"
endif
'###检查结束
%>
4.2基于ASP与HTML的非法字符的控制
HTML主要以尖括号("<"、">")为主要标识,ASP是以<%、%>为主要标识。为了用户能够正常浏览和防止非法破坏脚本,本系统采用了Replace函数进行字符的代换。把"<"代换成HTML的特定符号"<:";把">"代换成HTML的特定符号">"。其体实现如下:
<%
DimsContent
sContent=RS("XXX") '"XXX"为用户可以输入的文本名称
sContent=Replace(sContent,"<","<")'把"<"代换成"<"
sContent=Replace(sContent,">",">")'把">"代换成">"
Response.Write(sContent)'代换后输出该文本
%>
4.3在浏览器中的格式控制
即实现根据输入文本的换行。而不是你输入了一大段的文字(中间有回车符)可是从记录中再次调出的时候就没回车符了,只是在应该换行的地方变成了空格;和多个空格的时候再次调出的时候也只有一个空格。从而把调出的文字没有一定的格式。因此也必须进字符的代换,把回车和空格也应用Replace函数代换成HTML中特定的符号,其体实现如下:
<%
DimsContent
sContent=RS("XXX")'"XXX"为用户可以输入的文本名称
sContent=Replace(sContent,Chr(13)&Chr(10),"")'把"回车"代换成""
sContent=Replace(sContent,chr(32),"")'把"空格"代换成""
Response.Write(sContent)'代换后输出该文本
%>
4.4新闻发布系统的实现
1).新闻首页:
新闻的首页主要是通过新闻的标题来引导读者进入新闻的主题,所以该页面主要是从数据库中得到新闻的标题并于新闻发布的时间的先后进排序来显示在该页面上,并为每个标题加入链接进入新闻的主体部份。具体实现如下:
<%
exec="select*fromneworderbyiddesc"'按新闻的编号的倒序排列
setrs=server.createobject("adodb.recordset")
rs.openexec,conn,1,1
%>
"><%=rs("biaoti")%><--通过HTML中的标题链接并传递对应标题的编号到新闻的内容页面-->
2).新闻内容显示
本页面是根椐首页标题传递过来的编号,查找对应的记录并显示对应的记录。
3).新闻的发布、删除
即为表new中为每个字段增加、删除对应的数据。实现思想同留言本中的为添加删除记录一样。
4).新闻的修改
新闻的发布难免会出现一些错误,本系统的修改内容初始为原有的内容,把修改后的内容重新写入数据库中。
5.总结
经过二个多月的设计和开发,旅游网站系统基本开发完毕。其功能基本符合企业和用户需求,能够完成用户浏览信息。并提供部分系统维护功能,使用户方便进行数据添加、删除、修改。对于数据的一致性的问题也通过程序进行了有效的解决。
但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如旅游景点介绍比较不详细,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。
参考文献
[1]、赵增敏、朱粹丹、赵朱曦主编的《ASP动态网页设计》-北京:电子工业出版社2003.8
[2]、阮家栋、施美雅主编的《Web数据库技术》-北京:科学出版社,2002
[3]、数据库基础与应用/王利主编。-北京:中央广播电视大学出版社,1997.10
??
??
??
??
1
上一篇:
在线调查问卷WEB站点(论文+设计)(论文和程序)
下一篇:
ASP小区停车管理系统(Access)(含录像)