陕西师范大学网络教育学院
考查课
科目名称 基于WEB的程序设计
题 目 ACCESS+ASP在线通讯录
姓 名 万 科
学 号 50010720209075
专 业 计算机科学与技术
批次/层次 072/高起本
学习中心 重 庆
目 录
一、设计分析 1
二、程序结构 2
三、模板功能及程序说明 2
2、登录功能及程序说明 2
3、浏览、添加、删除、修改功能及程序说明 2
四、源程序 3
1、conn.asp源程序及功能源程序(公共数据库连接页面) 3
2、function.asp源程序及功能源程序(函数、过程页面) 3
3、Login.asp源程序及功能源程序(管理员浏览页面) 5
HYPERLINK \l "_Toc281987852" 4、list.asp源程序及功能源程序(普通用户页面) PAGEREF _Toc281987852 \h 6
HYPERLINK \l "_Toc281987853" 6、xiugai.asp源程序及功能源程序(修改通讯录) PAGEREF _Toc281987853 \h 6
HYPERLINK \l "_Toc281987854" 7、del.asp源程序及功能源程序(删除通讯录) PAGEREF _Toc281987854 \h 7
HYPERLINK \l "_Toc281987855" 8、chaxun.asp源程序及功能源程序(查询通讯录) PAGEREF _Toc281987855 \h 7
HYPERLINK \l "_Toc281987856" 9、out.asp源程序及功能源程序(退出登录) PAGEREF _Toc281987856 \h 8
HYPERLINK \l "_Toc281987857" 五、操作方法 PAGEREF _Toc281987857 \h 8
HYPERLINK \l "_Toc281987858" 1、登录界面操作方法 PAGEREF _Toc281987858 \h 8
HYPERLINK \l "_Toc281987859" 2、修改界面操作方法 PAGEREF _Toc281987859 \h 8
HYPERLINK \l "_Toc281987860" 3、删除界面操作方法 PAGEREF _Toc281987860 \h 9
HYPERLINK \l "_Toc281987861" 六、试验结果 PAGEREF _Toc281987861 \h 9
HYPERLINK \l "_Toc281987862" 七、设计体会 PAGEREF _Toc281987862 \h 13
一、设计分析
功能分析
用户注册
用户分类
用户登录
添加通信录
修改通信录
删除通信录
浏览通信录
查询通信录
数据分析
用户表:用户名 密码 权限
通讯录表:姓名 性别 电话 地址
二、程序结构
程序结构
三、模板功能及程序说明
2、登录功能及程序说明
控制用户的使用权限
使用真确的用户名和密码登录
登录后记录登录用户的用户名
登录控制
权限判定
不用权限登录后跳转至不同的页面
使用了屏蔽sql入注屏蔽
将部分敏感字符转换给了空值,如:’ % & 等
使用了错误信息提示
登录用户名或者密码错误都有错误信息提示
3、浏览、添加、删除、修改功能及程序说明
根据用户权限,普通用户跳转到普通浏览页面,只具有浏览功能。管理员跳转到带有管理功能的浏览页面,具有添加、删除、修改功能。
四、源程序
1、conn.asp源程序及功能源程序(公共数据库连接页面)
<%
dim conn,str
set conn = Server.Createobject("adodb.connection")
str = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("data/tongxun.mdb")
conn.open str
sub CreateRs(rs,sql,n1,n2)
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,n1,n2
end sub
'
sub closeRs(rs)
rs.close
set rs=nothing
end sub
sub closeConn()
conn.close
set conn=nothing
end sub
%>
2、function.asp源程序及功能源程序(函数、过程页面)
<%
function t(s) //屏蔽ASP敏感字符
dim s1
s1=replace(s,"'","‘")
s1=replace(s1,"%","")
s1=replace(s1,"!","")
s1=replace(s1,"/","")
s1=replace(s1,"&","")
s1=replace(s1,"<","")
s1=replace(s1,">","")
t=s1
end function
sub mun() //菜单函数
%>
<%end sub %>
<%
sub chuli() //表单及数据库处理函数
dim op
op=request.QueryString("op")
select case op
case "","1"
call Frm()
case "2"
call saveFrm()
end select
end sub
%>
<% sub xianfen() %> //分页显示函数
总共<%= ThisRsCount %>条记录,<%= ThisPageSize %>条记录/页,总共<%= ThisPageCount %>页,当前第<%= ThisCurrentPage %>页 |
<% If ThisCurrentPage=1 Then %>
第一页
<% Else %>
第一页
<% End If %>
|
<% If ThisCurrentPage=1 Then %>
上一页
<% Else %>
上一页
<% End If %>
|
<% If ThisCurrentPage=ThisPageCount Then %>
下一页
<% Else %>
下一页
<% End If %>
|
<% If ThisCurrentPage=ThisPageCount Then %>
最后一页
<% Else %>
最后一页
<% End If %>
|
<% end sub %>
<%
sub p() //用户判定函数
if session("name")="" then
response.Redirect("login.asp")
end if
end sub
%>
3、Login.asp源程序及功能源程序(管理员浏览页面)
<%
Call chuli()
sub saveFrm()
if request.Form("uid")<>"" and request.Form("upwd")<>"" then
call CreateRs(rs,"select * from uname where uname='"&t(Trim(Request.Form("uid")))&"' and upwd='"&t(Trim(Request.Form("upwd")))&"'",1,1)
if not rs.eof then
session("name")=rs("uname")
if rs("quanxian")>1 then
response.Redirect("list_1.asp")
else
response.Redirect("list.asp")
end if
else
dim t1
session("pan")="用户名或密码错误!"
response.Redirect("?op=1")
end if
else
session("pan")="用户名或密码不能为空!"
response.Redirect("?op=1")
end if
end sub
%>
4、list.asp源程序及功能源程序(普通用户页面)
<% //判定使用用户
call p()
call CreateRs(rs,"select * from xinxi order by id desc",1,1) //打开数据库连接
%>
<% call mun() %> //调用菜单页
<%
'设置每页显示多少条记录的分页常量ThisPageSize
Const ThisPageSize=10
'定义总记录数,总页数,当前页数,记数器变量
Dim ThisRsCount,ThisPageCount,ThisCurrentPage,i
'从URL中获取页码Page,并判断有效性
ThisCurrentPage=Request("Page")
If Request("Page")="" Then
ThisCurrentPage=1
ElseIf IsNumeric(ThisCur