网络相册实验报告.docx
- 文档编号:2784321
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:21
- 大小:949.75KB
网络相册实验报告.docx
《网络相册实验报告.docx》由会员分享,可在线阅读,更多相关《网络相册实验报告.docx(21页珍藏版)》请在冰点文库上搜索。
网络相册实验报告
一、设计背景
Internet在最近纪念迅速壮大的方式之一在于电子领域,而电子相册具有传统相册无法比拟的优越性:
图、文、声、像并茂的表现手法,随意修改编辑的功能,快速的检索方式,永不褪色的恒久保存特性,以及廉价复制分发的优越手段。
因此网络相册营运而生,网络相册是网站为用户提供的个人相片展示、存放的平台,因此我们开发设计使用ASP+Acess创建一个网络相册。
二、网络相册的功能分析
网络相册包括如下主要功能:
1.用户信息的管理
2.后台的照片管理
3.前台照片展示以及照片评论
三、网络相册的数据库设计
数据库设计的好坏会直接影响应用系统的效率,系统的运行的结果也会受到影响。
因此合理的数据库结构设计不仅应该保证数据的完整性和一致性。
还应但控制数据结构在3范式以上。
设计数据库系统时应当在充分考虑用户的需求,以及现有的,将来可能增加的需求。
数据库设计除了包含以上的步骤外还应当包括数据库后期的运行和维护。
所以我们使用MicrosoftAccess数据库进行开发主要是因为他的数据库链接设计比较简单,对于数据量不太大的的数据库比较适用。
采用ASP的开发方法主要基于asp的开发设比较容易,移植性较好。
四、网络相册的总体框架设计
1.网络相册的的结构功能图如下:
2网络相册的需求分析设计
打开Access数据库,在Access中创建数据库#photo.mdb,并在该数据库中创建主要表,分别为图片分类表【gType】,图片信息表【gPhotos】后台用户信息表【gUser】,图片评论表【gCommont】,用户注册信息表【gAcounts】
3逻辑设计
<1>图片分类表【gType】:
字段名
数据类型
长度
主/外键
描述
ID
长整型
主键
图片ID
Title
文本
30
图片名称
Sort
数字
图片排序
Enable
柱子
是否显示在导航中
<2>.图片信息表【gPhoto】
字段名
数据类型
长度
主/外键
描述
ID
长整型
主键
类别ID
Title
文本
30
图片名称
PhotoSize
数字
图片大小
ThumbPhotoPath
文本
50
PhotoPath
文本
50
图片路径
Hits
数字
点击次数
DateLine
日期
日期
UserID
长整型
外键
用户id
UserName
文本
30
外键
用户名
TypeID
长整型
30
外键
图片类型
Description
文本
230
图片描述
<3>.后台用户信息表【gUser】
字段名
数据类型
长度
主/外键
描述
userID
int
主键
会员ID
userName
varchar
20
用户名
Password
varchar
8
密码
Gender
varchar
20
性别
Locked
varchar
100
联系地址
LastIp
varchar
上次登录ip
Logintime
varchar
6
登陆次数
Mobil
bigint
移动电话
Tel
varchar
20
电话
varchar
100
Question
varchar
20
密保问题
Answer
varchar
20
密保答案
<4>.评论信息表【gCommond】
字段名
数据类型
长度
主/外键
描述
ID
Varchar(10)
主键
评论的id
Commond
varchar
120
评论
Ip
varchar
20
评论的ip
UserName
varchar
20
评论用户
Pid
Int
外键
Dateline
datetime
10
评论时间
<5>.用户注册信息表【gCommond】
字段名
数据类型
长度
主/外键
描述
np_user_id
长整型
主键
ID号
np_user_name
Varchar(30)
用户名
np_user_password
bigint
密码
np_user_sex
Varchar
性别
np_user_mail
Varchar
邮箱
4网络相册的数据库处理语句如下:
<%
Response.Buffer=True
DimConn,Db,MyDbPath
Startime=Timer()
'可修改设置一:
========================定义数据库类别,1为SQL数据库,0为Access数据库=============================
ConstIsSqlDataBase=0
MyDbPath=""
'================================================================================================================
IfIsSqlDataBase=1Then
'必修改设置二:
========================SQL数据库设置=============================================================
'sql数据库连接参数:
数据库名(SqlDatabaseName)、用户密码(SqlPassword)、用户名(SqlUsername)、
'连接名(SqlLocalName)(本地用local,外地用IP)
ConstSqlDatabaseName="gPhoto"
ConstSqlPassword="gPhoto"
ConstSqlUsername="gPhoto"
ConstSqlLocalName="(local)"
'================================================================================================================
Else
Db="data/#photo.mdb"
'================================================================================================================
EndIf
ConstIsDeBug=1
SubConnectionDatabase
DimConnStr
IfIsSqlDataBase=1Then
ConnStr="Provider=Sqloledb;UserID="&SqlUsername&";Password="&SqlPassword&";InitialCatalog="&SqlDatabaseName&";DataSource="&SqlLocalName&";"
Else
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(MyDbPath&db)
EndIf
OnErrorResumeNext
Setconn=Server.CreateObject("ADODB.Connection")
conn.openConnStr
IfErrThen
err.Clear
SetConn=Nothing
Response.Write"数据库连接出错,请检查连接字串。
"'注释,需要把这几个字翻译成英文。
Response.End
EndIf
EndSub
'
%>
5网络相册的主要具体实现如下:
用户登陆页面:
对用户的信息进行处理:
--#includefile="../conn.asp"-->
--#includefile="inc/const.asp"-->
--#includefile="../include/function.asp"-->
--#includefile="../include/md5.asp"-->
<%
'CallCheck_Path
Dimusername,password,V_Code
Dimsql,rs,loginIP
V_Code=trim(Request.form("v_code"))
Ifcint(V_Code)<>cint(Session("GetCode"))then
js="
js=js&"alert('验证码错误!
');"&VBCRLF
js=js&"history.go(-1);"&VBCRLF
js=js&""&VBCRLF
Response.write(js)
Response.end
endIf
username=gCheckStr(gHtmlEnCode(Request.Form("username")))
password=Request.Form("pwd")
password=md5(trim(password))
loginIP=gGetTrueIP()
Session("admin_logined")=False
sql="selectUserID,UserName,RoleIDfromguserswhereUserName='"&username&"'And[Password]='"&password&"'"
Response.writesql
ifnotisobject(conn)thenConnectiondatabase
setrs=conn.Execute(sql)
IfNot(rs.bofAndrs.Eof)ThenSession("admin_logined")=True:
Session("admin_name")=rs
(1):
Session("UserID")=rs(0):
Session("RoleID")=rs
(2)
rs.Close
Setrs=Nothing
'Response.writeSession("admin_logined")&Session("admin_name")
'Response.Redirect("index.asp")
%>
分类浏览:
<%
'----------------------------------------------------
'[Gong](C)2007-2008.
'ThisisNOTafreeware,useissubjecttolicenseterms
'Id:
list.asp2008-03-2600:
53:
29Gong
'----------------------------------------------------
Dimid,Title,sql,rs,strWhere
id=gSafeRequest("id",1)
Ifid>0Then
sql="SelectTitleFromgTypesWhereID="&id
IfNotIsObject(conn)ThenCallConnectionDatabase
Setrs=conn.Execute(sql)
IfNot(rs.eofAndrs.bof)ThenTitle=rs(0)
rs.close():
Setrs=Nothing
strWhere="TypeID="&id
Else
Title="全部"
strWhere=""
EndIf
PageTitle=Title&","&gTitle
%>
浏览照片以及发表评论:
照片评论:
Dimid,rs,sql,ary
id=gSafeRequest("id",1)
IfNotid>0ThenResponse.Redirect"index.asp"
sql="UpdategPhotosSetHits=Hits+1WhereID="&id
IfNotIsObject(conn)ThenCallConnectionDatabase
conn.Executesql
sql="Select*FromgPhotosWhereID="&id
Setrs=conn.Execute(sql)
IfNot(rs.eofAndrs.bof)Thenary=rs.GetRows()
rs.close():
Setrs=Nothing
Ifisarray(ary)then
DimTypeTitle
sql="SelectTitleFromgTypesWhereID="&ary(10,0)
Setrs=conn.Execute(sql)
IfNot(rs.eofAndrs.bof)ThenTypeTitle=rs(0)
rs.close():
Setrs=Nothing
EndIf
PageTitle=ary(1,0)&"-"&TypeTitle
%>
--#includefile="head.asp"-->
30px;background: url('images/cat_bg.gif');">您的位置: id="&ary(10,0))%>"><%=TypeTitle%>-><%=ary(1,0)%>
<%IfAllowCommentThen%>
30px;background: url('images/cat_bg.gif');border-bottom: 1pxsolid#336699;">发表评论
id=<%=id%>">
30px;background: url('images/cat_bg.gif');border-bottom: 1pxsolid#336699;">相关评论
<%
EndIf
SubgShowComment(id)
Dimsql,rs
sql="SelectComment,UserName,DateLineFromgCommentWherepid="&id
ifnotIsObject(conn)thenConnectionDatabase
setrs=conn.execute(sql)
ifnot(rs.bofandrs.eof)then
dowhilenotrs.eof
Response.Write(" #E5ECF4;border-bottom: 1pxsolid#336699;border-left: 1pxsolid#336699;border-right: 1pxsolid#336699;""> 10px;height: 30px;vertical-align: middle;line-height: 30px;border-bottom: 1pxsolid#369;width: 300px;color: #369;"">"&(rs (1)&" 发表于 "&rs (2)&"
10px;margin-top:
10px;"">"&rs(0)&"
rs.MoveNext
Loop
Endif
rs.close:
setrs=Nothing
EndSub
%>
--#includefile="foot.asp"-->
后台管理
图片以及相应图片评论的管理:
IfInstalledJPEG=0Then
Response.Write(" (2)&"""onerror=this.src=""../images/none.gif""/> 100%;background-color: #ffffff"">"&rs (1)&" 100%;background-color: #ffffff""> action=del&id="&rs(0)&"onclick=""returnconfirm('确实要删除该图片吗? ');"">删除| action=comment&id="&rs(0)&">管理评论
Else
Response.Write(" (2)&"""onerror=this.src=""../images/none.gif""/> 100%;background-color: #ffffff"">"&rs (1)&" 100%;background-color: #ffffff""> action=del&id="&rs(0)&"onclick=""returnconfirm('确实要删除该图片吗? ');"">删除| action=comment&id="&rs(0)&">管理评论删除