资源描述
湖南工业大学
课 程 设 计
资 料 袋
计算机和通信 学院(系、部) ~ 年第 2 学期
课程名称 WEB技术和应用 指导老师 翁艳彬 职称 讲师
学生姓名 贺明 专业班级 计算机科学和技术1201班 学号
题 目 BBS论坛
成 绩 起止日期 06月 8 日~ 06月12日
目 录 清 单
序号
材 料 名 称
资料数量
备 注
1
课程设计任务书
1
2
课程设计说明书
1
3
源程序(电子文档)
1
4
5
WEB技术和应用课程设计
设计说明书
个人通信录
起止日期: 年 06月 8日 至 年 06月 12 日
学生姓名
贺明
班级
计算机科学和技术1201
学号
成绩
指导老师(签字)
计算机和通信学院
6月12日
目录
一、设计目标 4
二、设计要求 4
三、BBS论坛总体设计 4
四、BBS论坛关键技术 9
五、BBS论坛具体代码 9
六、总结 13
BBS论坛
一、设计目标
课程设计是“ASP动态网页设计”课程一个关键实践性步骤,其目标是使我们:
① 深入巩固和加深“ASP动态网页设计”课程基础知识,了解ASP
动态网页设计知识在实际中应用。
②综合利用“ASP动态网页设计”课程和先修课程理论及生产实际知识去分析和处理问题,进行相关训练。
③学习ASP动态网页设计通常方法,了解和掌握通用数据库连接、数据相关操作或网站设计过程和进行方法,培养正确设计思想和分析问题、处理问题能力,尤其是网站功效计划能力和实现相关功效能力。
④经过能系统分析、系统设计、数据库设计和功效实现等,培养ASP动态网页设计基础技能
二、设计要求
课程设计是选择本课程关键教学内容相结合设计课题。此次课程实际课题是“BBS论坛”。具体内容以下:
1. 匿名用户能够随意逛贴。
2. 匿名用户能够注册成为会员。
3. 登录用户能够发帖和回帖。
三、BBS论坛总体设计
本项目从宏观来说分为两个模块:一个是浏览、发表和回复用户文章模块,关键是相关BBS文章;另一个是用户管理模块,关键是相关BBS注册用户。
依据以上要求,本系统包含以下文件。
(1)数据库文件--------因为包含论坛栏目信息、文章信息、回复信息和用户信息,所以依次建立了forum、topic、reply和user表,用数据库是mysql,结构依次图3-1、3-2、3-3和3-4所表示。
图3-1 版块信息表forum结构
图3-2 专题信息表topic结构
图3-3 回复表信息表reply结构
图3-4 信息表user结构
(2)BBS版块页forumList.asp---------显示全部版块,运行结果图3-5
图3-5 版块页
(3)BBS专题页forumShow.asp--------显示全部专题,运行结果图3-6
图3-6 专题页
(4)若用户未登陆,弹出登陆页面,图3-7所表示
图3-7 登陆页面
(5)发表新贴页面saveUi---------在专题文件夹中,用户登陆状态就能发表,运行结果图3-8所表示
图3-8 发新贴页面
(6)帖子回复页面topicShow.asp--------进入专题后就能看到全部回复,有分页显示功效,图3-9所表示
图3-9 帖子回复页面
(7)回复页面saveUi.asp--------在回复文件夹中,登录即可发帖,运行页面图3-10所表示
图3-10 回复页面
四、BBS论坛关键技术
(1)复杂数据库设计
多表操作,比如,在回复帖子时候,除了更新回复表,版块表文章数也应该增加,专题表回复数也应该增加
(2)用户端javascript验证
在填写表单信息后,通常要求用户根据一定规则填写,利用用户端javascript验证代码,能够在提交表单前在用户端就进行验证,符合规则后才提交到服务器端,这么就能够减轻服务器负担。
(3)样式Div+css设计
单纯标签形成页面太过简单,而且不好看,经过div+css对页面进行设计,能够使页面愈加美观。
(4)数据分页综合处理技术
在一个页面中,假如既要分页,又能够连接到具体页,这么设计愈加人性化。实现技术只需将本页信息和要跳转页号添加到URL后面查询字符串,
然后用reques.queryString获取参数即可。
(5)用户管理技术
用户匿名是,只能逛贴。 用户在线注册后,填写个人信息,就能够发帖和回帖了,而且把用户名存到session中。用户注销时,将个session清空就能够了。
五、BBS论坛具体代码
(1)数据库连接文件odbc_connection.asp
<%Dim strconnection,conn
strconnection="dsn=mysql;driver ={ MySQL ODBC 5.3 Unicode Driver};server=localhost;uid=root;pwd=admin;database=bbs"
set conn = server.createobject("adodb.connection")
conn.open strconnection
%>
(2)查询全部版块forumList.asp
<%
Dim strconnection,sql,rs,conn
strconnection="dsn=mysql;driver={MySQL ODBC 5.3 Unicode Driver};server=localhost;uid=root;pwd=admin;database=bbs"
set conn = server.createobject("adodb.connection")
conn.open strconnection
sql = "select * from forum"
set rs = conn.execute(sql)
Do While not rs.eof
%>
(3)分页显示
<%
'经过版块id获取全部专题
'以下建立resultSet
Dim strSql
set rs =server.createObject("adodb.recordSet")
rs.CursorLocation=3
strSql ="select * from topic where forumId="&forumId
rs.open strSql,conn,1
'假如统计集不是空,则就进行分页
Dim intPage
if not rs.bof and not rs.eof then
if request.queryString("varPage") ="" then
intPage = 1
else
intPage = CInt(request.queryString("varPage"))
end if
'分页
rs.pageSize = 5
rs.absolutePage= intPage
Dim i
for i=1 to rs.pageSize
if rs.eof then exit for
%>
.....显示信息
<%
if intpage > 1 then
response.write "<a href='topicShow.asp?varpage="&(intPage-1)&"&forumId="&forumId&"&topicId="&topicId&"'>上一页</a> "
else
response.write "<span style='cursor: pointer;'>上一页</span> "
end if
Dim j, beginPageIndex,endPageIndex
if rs.pageCount<2 then
beginPageIndex=1
endPageIndex=rs.pageCount
else
beginPageIndex = intPage-2
endPageIndex = intPage+2
if beginPageIndex <1 then
beginPageIndex=1
endPageIndex=rs.pageCount
else
if endPageIndex >= rs.pageCount then
beginPageIndex = rs.pageCount -4
endPageIndex = rs.pageCount
end if
end if
end if
for j = beginPageIndex to endPageIndex
response.write "<a href='topicShow.asp?varpage="&j&"&forumId="&forumId&"&topicId="&topicId&"'>"&j&"</a> "
next
if intpage < rs.pageCount then
response.write "<a href='topicShow.asp?varpage="&(intPage+1)&"&forumId="&forumId&"
&topicId="&topicId&"'>下一页</a>
else
response.write "<span style='cursor: pointer;'>下一页</span> "
end if
response.write "<a href='topicShow.asp?varpage="&rs.pageCount&"&forumId="&forumId&"&topicId="&topicId&"'>最终页</a> "
end if
%>
(4)用户登录
<!--#include virtual="/temp/simpleForum/ASP/odbc_connection.asp"-->
<%
if request.form("name")<>"" and request.form("password")<> "" then
Dim strLoginName,strPassword,strSql,rs,forumId
forumId=request.queryString("forumId")
strLoginName = request.form("name")
strPassword = request.form("password")
strSql = "select * from user where name='"&strLoginName&"' and password='"&strPassword&"'"
response.write strSql
Set rs=conn.execute(strSql)
if not rs.bof and not rs.eof then
session("name")=strLoginName
response.redirect "../BBS_Topic/saveUi.asp?forumId="&forumId
else
response.redirect "ForumShow.asp?forumId="&forumId&"&message=用户名或密码错误&name="&strLoginName
end if
else
response.redirect "ForumShow.asp?forumId="&forumId&"&messag=用户名和密码不能为空"
end if
%>
六、总结
经过这次课程设计,我掌握了利用asp连接数据库、分页显示数据和用户管理等技术,学会了怎样修改程序中错误,碰到问题时怎样查找资料。同时感谢翁老师细心指导。
展开阅读全文