- 相關(guān)推薦
ASP在線教育系統(tǒng)(一)
目 錄
前言 3
第一章 編程環(huán)境基礎(chǔ)知識(shí) 4
1.1 ASP技術(shù)簡(jiǎn)介 4
1.2 ACCESS2003 技術(shù)簡(jiǎn)介 4
第二章 需求分析 1
2.1 目標(biāo)設(shè)計(jì) 1
2.2 系統(tǒng)功能分析與設(shè)計(jì) 2
2.3 性能需求 2
第三章 系統(tǒng)設(shè)計(jì) 4
3.1 資料顯示模塊 4
3.1.1 資料信息顯示頁(yè) 5
3.1.2 資料詳細(xì)信息頁(yè) 9
3.1.3 資料信息下載頁(yè) 11
3.1.4 提交回復(fù)作業(yè)頁(yè) 12
3.1.5 提交回復(fù)作業(yè)成功頁(yè) 13
3.1.6 教師基本信息頁(yè) 16
3.1.7 資料信息搜索頁(yè) 20
3.1.8 資料信息搜索結(jié)果頁(yè) 21
3.2 資料管理模塊 22
3.2.1 管理員登陸頁(yè) 24
3.2.2 驗(yàn)證管理員帳號(hào)頁(yè) 24
3.2.3 管理員登陸成功頁(yè) 26
3.2.4 增加資料欄目頁(yè) 27
3.2.5 增加欄目成功頁(yè) 28
3.2.6 修改欄目信息頁(yè) 30
3.2.7 保存修改的欄目信息頁(yè) 32
3.2.8 刪除欄目信息頁(yè) 34
3.2.9 刪除欄目信息成功頁(yè) 34
3.2.10 發(fā)布資料信息頁(yè) 36
3.2.11 資料信息發(fā)布成功頁(yè) 38
3.2.12 資料信息列表頁(yè) 39
3.2.13 資料信息修改頁(yè) 39
3.2.14 保存修改的資料信息頁(yè) 42
3.2.15 刪除資料信息頁(yè) 46
3.2.16 刪除資料信息成功頁(yè) 47
3.3 教師管理 50
3.3.1 搜索教師頁(yè) 51
3.3.2 教師搜索結(jié)果頁(yè) 52
3.3.3 添加教師信息頁(yè) 53
3.3.4 添加教師成功頁(yè) 54
3.3.5 修改教師信息頁(yè) 55
3.3.6 修改教師信息成功頁(yè) 57
3.3.7 刪除教師信息頁(yè) 58
3.3.8 刪除教師信息成功頁(yè) 58
第四章 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 60
4.1 數(shù)據(jù)庫(kù)需求分析 60
4.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì) 60
4.3 數(shù)據(jù)庫(kù)連接說(shuō)明 61
第五章 測(cè)試和維護(hù) 62
5.1 網(wǎng)站維護(hù) 62
5.2 網(wǎng)站測(cè)試 62
參考文獻(xiàn) 63
致謝 64
前言
與傳統(tǒng)教育相比,遠(yuǎn)程教育是一種全新的教育模式,它可以突破時(shí)間和空間的限制,幫助人們隨時(shí)隨地地學(xué)習(xí),讓更多的學(xué)習(xí)者共享優(yōu)秀教育資源。遠(yuǎn)程教育既具有開放性、交互性、協(xié)作性和自主性等特點(diǎn),又具有異步性、實(shí)時(shí)性、生動(dòng)性、集成性和大容量等優(yōu)勢(shì)。因此,在遠(yuǎn)程教育系統(tǒng)的建設(shè)中,單純地構(gòu)建各種功能單一的系統(tǒng)并不能完全滿足遠(yuǎn)程教育建設(shè)的需求,只有那些對(duì)數(shù)據(jù)和信息進(jìn)行了有效組織、整合了多種業(yè)務(wù)、為用戶提供個(gè)性化服務(wù)的系統(tǒng)才能充分發(fā)揮遠(yuǎn)程教育的作用。
使用在線教育系統(tǒng)可以為用戶提供在線教案學(xué)習(xí)、在線提交作業(yè)和查詢教師等服務(wù)。
第一章 編程環(huán)境基礎(chǔ)知識(shí)
1.1 ASP技術(shù)簡(jiǎn)介
Microsoft Active Server Pages 即我們所稱的ASP,其實(shí)是一套微軟開發(fā)的服務(wù)器端腳本環(huán)境.Active Server Page 是創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)的一個(gè)很好的工具,它起一種編程語(yǔ)言的作用,可以利用它編寫動(dòng)態(tài)產(chǎn)生HTML的程序代碼.因此,只要用戶瀏覽Web站點(diǎn)并請(qǐng)求一個(gè)ASP頁(yè),Web服務(wù)器就可以處理相應(yīng)的ASP代碼,生成HTML代碼,然后將它傳遞到用戶瀏覽器并顯示出網(wǎng)頁(yè).
ASP程序的優(yōu)點(diǎn):
1,ASP使用VBScript腳本語(yǔ)言直接源于VB語(yǔ)言,秉承了VB簡(jiǎn)單易學(xué)的特點(diǎn),掌管起來(lái)非常容易.
2,無(wú)須編譯,容易編寫,可在服務(wù)器端直接執(zhí)行.
3,利用ADO組件輕松存取數(shù)據(jù)庫(kù).
4,與瀏覽器無(wú)關(guān),客戶端只要使用可執(zhí)行HTML碼的瀏覽器,即可瀏覽ASP所設(shè)計(jì)的網(wǎng)頁(yè)內(nèi)容.
5,ASP能與任何ActiveX scripting語(yǔ)言相容.除了可使用VBScript或java script語(yǔ)言來(lái)設(shè)計(jì)外,還通過(guò)plug-in的方式,使用由第三方所提供的其他腳本語(yǔ)言.
6,ASP技術(shù)的處理速度相當(dāng)快,并且其安全性也很高,ASP的源程序,不會(huì)被傳到客戶瀏覽器,因而可以避免所寫的源程序被他人剽竊,也提高了程序的安全性.
7,ASP的對(duì)象和組件:ASP有7個(gè)固有對(duì)象這7個(gè)固有對(duì)象分別是Request,Response,Server,Application,Session,ASPError和ObjectContext.
1.2 ACCESS2003 技術(shù)簡(jiǎn)介
Access2003 就是關(guān)系數(shù)據(jù)庫(kù)開發(fā)工具,數(shù)據(jù)庫(kù)能匯集各種信息以供查詢,存儲(chǔ)和檢索.那么什么叫數(shù)據(jù)庫(kù)呢 數(shù)據(jù)庫(kù)(Database)是由一些有意義和有關(guān)系的數(shù)據(jù)(data)所組合而成.一個(gè)數(shù)據(jù)庫(kù)中,包含了許多條記錄(Record),而每條記錄是由多個(gè)字段(Field)所組成,不同的字段存放這不同的數(shù)據(jù).所以數(shù)據(jù)庫(kù)的嚴(yán)格定義是一組相關(guān)記錄的集合,而字段則是最基本的數(shù)據(jù)項(xiàng),也是數(shù)據(jù)庫(kù)中最小的單位.在計(jì)算機(jī)中用來(lái)幫我們管理數(shù)據(jù)庫(kù)的系統(tǒng),我們稱之為數(shù)據(jù)庫(kù)管理管理系統(tǒng)(Database Management System DBMS).數(shù)據(jù)庫(kù)管理系統(tǒng)是架構(gòu)在一個(gè)或多個(gè)數(shù)據(jù)庫(kù)之上,并針對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行管理運(yùn)用.
Access 的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息,數(shù)據(jù)表示圖提供了一種類似于 Excel 的電子表格,可以使數(shù)據(jù)庫(kù)一目了然.另外,Access 允許創(chuàng)建自定義報(bào)表用于打印或輸出數(shù)據(jù)庫(kù)中的信息.Access也提供了數(shù)據(jù)存儲(chǔ)庫(kù),可以使用桌面數(shù)據(jù)庫(kù)文件把數(shù)據(jù)庫(kù)文件置于網(wǎng)絡(luò)文件服務(wù)器,與其他網(wǎng)絡(luò)用戶共享數(shù)據(jù)庫(kù).如上所述,Access 作為關(guān)系數(shù)據(jù)庫(kù)開發(fā)具備了許多優(yōu)點(diǎn),可以在一個(gè)數(shù)據(jù)包中同時(shí)擁有桌面數(shù)據(jù)庫(kù)的便利和關(guān)系數(shù)據(jù)庫(kù)的強(qiáng)大功能.
第二章 需求分析
一個(gè)典型的在線教育系統(tǒng)至少應(yīng)包含資料顯示、資料管理和教師管理3種功
能。本站的系統(tǒng)結(jié)構(gòu)如圖2—1所示。
2-1系統(tǒng)結(jié)構(gòu)
2.1 目標(biāo)設(shè)計(jì)
在線教育系統(tǒng)所要實(shí)現(xiàn)的功能如下。
● 資料顯示模塊
■ 顯示資料
■ 顯示教師介紹
■ 瀏覽查閱資料
■ 回復(fù)提交資料
● 資料管理模塊
■ 資料欄目管理
■ 發(fā)布資料
■ 管理資料
● 教師管理模塊
■ 添加教師信息
■ 編輯教師信息
■ 刪除教師信息
2.2 系統(tǒng)功能分析與設(shè)計(jì)
在線教育系統(tǒng)共分為3個(gè)模塊:資料顯示模塊、資料管理模塊和教師管理模塊,其功能模塊劃分如圖所示。
2.3 性能需求
開發(fā)環(huán)境
WindowsXP操作系統(tǒng)
80G的硬盤空間
AMD2500+處理器
17 # 純平監(jiān)視器
512內(nèi)存
適用環(huán)境
1.Windows98/Me/2000/XP操作系統(tǒng)
2.1G以上的硬盤空間
3.Inter 賽揚(yáng)1.0G以上處理器
4.15 # 普通監(jiān)視器以上
5.32M以上內(nèi)存
第三章 系統(tǒng)設(shè)計(jì)
3.1 資料顯示模塊
資料顯示模塊包含以下子模塊。
● 資料顯示
● 資料搜索
資料顯示子模塊包含以下頁(yè)面。
● index.asp
● detail.asp
● download.asp
● teacherinfo.asp
資料搜索子模塊包含以下頁(yè)面。
● search.asp
● list.asp
各頁(yè)面間的關(guān)系如圖3-1所示。
3-1各頁(yè)面間的關(guān)系
3.1.1 資料信息顯示頁(yè)
1. index.asp頁(yè)面示例
圖3-2為顯示資料信息所看到的頁(yè)面。
圖 3-2 顯示資料信息
2. 頁(yè)面中需要用戶填寫的HTML表單元素。
此頁(yè)無(wú)需填寫HTML表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息。
此頁(yè)面用來(lái)顯示資料信息,使用了系統(tǒng)中的資料信息表main和教師信息表teacher。
4. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用網(wǎng)站設(shè)置文件
<!--#include file="fenlei.asp"-->
<%’取得網(wǎng)站設(shè)置信息
sql = "select * from config"
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,3
schoolname = rs("schoolname")
gonggao = rs("gonggao")
todaytimes = rs("todaytimes")
times = rs("times")
‘今日訪問統(tǒng)計(jì)
if rs("todaydate") <> date() then
rs("todaydate") = date()
rs.update
todaytimes = 0
end if
‘總訪問統(tǒng)計(jì)
if request.cookies("counted") <> "yes" then
response.cookies("counted") = "yes"
‘設(shè)置cookies失效時(shí)間
response.cookies("counted").expires = now() + 1/72
‘統(tǒng)計(jì)數(shù)加1
times = times + 1
todaytimes = todaytimes + 1
rs("times") = times
rs("todaytimes") = todaytimes
rs.update
end if
‘關(guān)閉記錄集對(duì)象
rs.close
dim num1
dim rndnum
Randomize
%>
‘Html頁(yè)面顯示部分
……
<%’取最近更新的10條資料記錄
sql = "select * from main,teacher where main.idofteacher=teacher.teacherid order by main.times desc"
rs.open sql,conn,1,1
‘顯示最近更新的10條資料記錄
for i = 1 to 10
if rs.eof then
response.write "<tr><td> </td><td> </td><td> </td><td> </td></tr>"
else
if len(rs("title")) > 10 then
filetitle = left(rs("title"),10)&"..."
else
filetitle = rs("title")
end if
%>
<tr><td align=left> <img src=images/arrow.gif>
<a href=# title="<%=rs("title")%>" onclick=java script:showdetail(<%=rs("mainid")%>);><%=filetitle%></a>
</td><td align=center><a href=teacherinfo.asp?id=<%=rs("teacherid")%> title="查看<%=rs("teacher")%>的個(gè)人專集"><%=rs("teacher")%></a></td>
<td align=center><%=rs("times")%></td>
<td align=left> <%=rs("fenlei2")%></td></tr>
<%‘取下一條資料記錄
rs.movenext
end if
next
‘關(guān)閉記錄集對(duì)象
rs.close
%>
3.1.2 資料詳細(xì)信息頁(yè)
1. etail.asp頁(yè)面示例
圖3-3為顯示資料詳細(xì)信息的頁(yè)面。
圖3-3 資料詳細(xì)信息
2. 頁(yè)面中需要用戶填寫的Html表單元素。
此頁(yè)無(wú)需填寫Html表單元素。
3. 面所涉及的數(shù)據(jù)庫(kù)表信息。
此頁(yè)使用了系統(tǒng)中的資料信息表main和教師信息表teacher。
4. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用網(wǎng)站設(shè)置文件
<!--#include file="fenlei.asp"-->
<%’取得要顯示資料信息的id號(hào)
id = request("id")
if id = "" then
conn.close
set conn = nothing
response.write "<script>alert('沒有找到您要查看的記錄');window.close();</script>"
response.end
end if
‘打開記錄集對(duì)象
set rs = server.createobject("adodb.recordset")
sql = "select * from main,teacher,type where main.idofteacher=teacher.teacherid and main.idoftype=type.typeid and main.mainid="&id
‘取得資料詳細(xì)信息
rs.open sql,conn,1,1
‘如果資料詳細(xì)信息不存在則提示錯(cuò)誤
if rs.bof and rs.eof then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('沒有找到您要查看的記錄');window.close();</script>"
response.end
else
%>
‘Html頁(yè)面顯示部分,顯示資料的詳細(xì)信息
……
<%’關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
end if
3.1.3 資料信息下載頁(yè)
1. download.asp頁(yè)面示例
圖3-4 為閱讀資料信息所看到的頁(yè)面。
圖3-4 閱讀資料信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的資料信息表main。
4. 頁(yè)面代碼分析
<%’取得要顯示資料信息的id號(hào)
id = trim(request("id"))
if id = "" then
conn.close
set conn = nothing
response.write "<script>alert('沒有找到您要閱讀的資料');window.close();</script>"
response.end
end if
sql = "select * from main where mainid="&id
set rs = server.createobject("adodb.recordset")
‘取得資料詳細(xì)信息
rs.open sql,conn,1,3
‘如果資料詳細(xì)信息不存在則提示錯(cuò)誤
if rs.bof and rs.eof then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('沒有找到您要閱讀的資料');window.close();</script>"
response.end
‘如果資料詳細(xì)信息存在
Else
‘該資料閱讀數(shù)加1
rs("times") = rs("times") + 1
rs.update
‘頁(yè)面下載或者打開資料信息
response.redirect rs("fileurl")
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
end if
%>
3.1.4 提交回復(fù)作業(yè)頁(yè)
1. redetail.asp頁(yè)面示例
圖3-5為提交回復(fù)作業(yè)信息所看到的頁(yè)面。
圖3-5 提交回復(fù)作業(yè)信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)中有3個(gè)表單元素,如表1所示。
表1 redetail.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Name Text 學(xué)生姓名 20
Title Text 作業(yè)標(biāo)題 20
Message Textarea 作業(yè)答案 100
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)面用來(lái)顯示提交回復(fù)作業(yè)信息,并沒有涉及到數(shù)據(jù)庫(kù)表的操作。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到redetailok.asp提交作業(yè)答案
<form action="redetailok.asp" method="post" >
‘Html頁(yè)面顯示部分
……
</form>
3.1.5 提交回復(fù)作業(yè)成功頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的回復(fù)作業(yè)信息記錄表work。
3. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
<%’學(xué)生姓名必須要輸入
name = trim(request("name"))
if name = "" then
response.write "<script>alert('請(qǐng)輸入學(xué)生姓名');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
if len(name) > 5 then
response.write "<script>alert('學(xué)生姓名不得超過(guò)5個(gè)漢字');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
‘作業(yè)標(biāo)題必須要輸入
title = trim(request("title"))
if title = "" then
response.write "<script>alert('請(qǐng)輸入作業(yè)標(biāo)題');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
‘作業(yè)答案必須要輸入
message = trim(request("message"))
if message = "" then
response.write "<script>alert('請(qǐng)輸入作業(yè)答案');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
‘作業(yè)的id號(hào)必須存在
reid = trim(request("reid"))
if reid = "" then
response.write "<script>alert('非法操作');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
sql = "select * from work where name='"&name&"' and reid="&reid
set rs = server.createobject("adodb.recordset")
‘查找作業(yè)表中是否存在學(xué)生姓名和回復(fù)作業(yè)的id號(hào)相同的記錄存在
rs.open sql,conn,1,3
‘如果存在則說(shuō)明學(xué)生已經(jīng)提交過(guò)作業(yè)不能再提交了
if not (rs.bof and rs.eof) then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('你已經(jīng)提交過(guò)作業(yè)了');history.go(-1);</script>"
response.end
else
‘如果不存在則添加作業(yè)答案記錄
rs.addnew
rs("reid")=reid
rs("name")=name
rs("title")=title
rs("message")=message
‘添加作業(yè)答案記錄成功
rs.update
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
end if
response.write "<script>alert('添加成功');window.location.href='index.asp';</script>"
%>
3.1.6 教師基本信息頁(yè)
1. teacherinfo.asp頁(yè)面示例
圖3-6為顯示教師基本信息所看到的頁(yè)面。
圖3-6 顯示教師基本信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)面用來(lái)顯示教師基本信息,此頁(yè)使用了系統(tǒng)中的資料信息表main和教師信息表teacher。
4. 頁(yè)面代碼分析
<%’取得要顯示教師信息的id號(hào)
id = trim(request("id"))
if id = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='index.asp';</script>"
response.end
end if
‘判斷用戶是否是管理員
if session("admin") = "admin" then
isadmin = true
else
isadmin = false
end if
‘判斷用戶是否是教師
if session("teacherid") <> "" then
isteacher = true
else
isteacher = false
end if
‘取得教師詳細(xì)信息
sql = "select * from teacher where teacherid="&id
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,1
%>
‘Html頁(yè)面顯示部分,顯示教師信息
……
<%’關(guān)閉記錄集對(duì)象
rs.close
end if
‘取得欄目信息
sql = "select * from type"
rs.open sql,conn,1,1
set rs1 = server.createobject("adodb.recordset")
‘所有欄目信息
do while not rs.eof
sql1 = "select count(mainid) from main where idofteacher="&id&" and idoftype="&rs("typeid")
‘取得教師在該欄目發(fā)表的資料總數(shù)
rs1.open sql1,conn,1,1
counter = rs1(0)
rs1.close
‘發(fā)表的資料總數(shù)如果是3的倍數(shù)
if counter mod 3 = 0 then
‘定義顯示資料記錄的框架的高度
iframeheight = 20*(int(counter/3)+1)
else
iframeheight = 20*(int(counter/3)+2)
end if
‘框架的高度最大值為220
if iframeheight > 220 then iframeheight = 220
%>
<tr><td align="center" class="header" colspan=3>已在本站發(fā)布的<%=rs("type")%>(共<%=counter%>件)</td></tr>
<tr><td align="center" colspan=3>
‘顯示資料記錄的框架頁(yè)
<iframe name="titleof<%=rs("typeid")%>" frameborder=0 width=100% height=<%=iframeheight%> scrolling=no src=titlelist.asp?type=<%=rs("typeid")%>&id=<%=id%>></iframe>
</td></tr>
<%’取下一個(gè)欄目
rs.movenext
loop
‘關(guān)閉記錄集對(duì)象
set rs1 = nothing
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
%>
</table>
<%’如果用戶既不是管理員也不是教師
if not isadmin and not isteacher then
%>
<!--#include file="foot.asp"-->
<%
end if
%>
</body>
</html>
<%’關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
%>
3.1.7 資料信息搜索頁(yè)
1. search.asp頁(yè)面示例
圖3-7為搜索資料信息所看到的頁(yè)面。
圖3-7搜索資料信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)共有5個(gè)表單元素,如表2所示。
表2 search.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
fenlei1 Text 所屬學(xué)院 20
feilei2 Text 所屬系 20
Teacher Text 教師姓名 10
Course Text 相關(guān)資料 20
Titli Text 資料標(biāo)題 20
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)面用來(lái)顯示搜索資料信息,此頁(yè)使用了系統(tǒng)中的資料欄目信息表type。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到list.asp
<form action="list.asp" method="post">
‘Html頁(yè)面顯示部分,顯示要填寫的搜索條件
……
</form>
3.1.8 資料信息搜索結(jié)果頁(yè)
1. list.asp頁(yè)面示例
圖3-8為顯示資料信息列表所看到的頁(yè)面。
3-8 顯示資料信息列表
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)面用來(lái)顯示資料信息列表,使用了系統(tǒng)中的資料信息表main和教師信息表teacher。
3.2 資料管理模塊
資料管理模塊包含以下子模塊。
● 管理員登陸
● 資料欄目管理
● 資料信息管理
管理員登陸子模塊包含以下頁(yè)面。
● adminlogin.asp
● asmincheck.asp
● adminmain.asp
資料欄目管理子模塊包含以下頁(yè)面。
● addtype.asp
● addtypeok.asp
● edittype.asp
● edittypeok.asp
● deltype.asp
● deltypeok.asp
資料信息管理子模塊包含以下頁(yè)面。
● put.asp
● pubok.asp
● list.asp
● edit.asp
● editok.asp
● admindelcourseware.asp
● admindelcoursewareok.asp
各頁(yè)面間的關(guān)系如圖3-9所示。
3-9 各頁(yè)面間的關(guān)系
3.2.1 管理員登陸頁(yè)
1. adminlogin.asp頁(yè)面示例
圖3-10為管理員登陸所看到的頁(yè)面。管理員密碼為admin。
圖3-10 管理員登陸
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)共有兩個(gè)表單元素,如表3所示。
表3 adminlogin.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Adminpwd Password 管理員密碼 15
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)并沒有涉及到數(shù)據(jù)庫(kù)表的操作。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到adminlogin.asp
<form action="admincheck.asp" method="post">
‘Html頁(yè)面顯示部分,顯示要填寫的登陸信息
……
</form>
3.2.2 驗(yàn)證管理員帳號(hào)頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)面用來(lái)驗(yàn)證管理員信息,使用了系統(tǒng)中的管理員表config。
3. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
<%’取得提交過(guò)來(lái)的信息
adminpwd = request("adminpwd")
‘如果輸入的密碼為空
if adminpwd = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)輸入密碼');history.go(-1);</script>"
response.end
end if
sql = "select * from config"
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,1
‘如果輸入的密碼與數(shù)據(jù)庫(kù)中密碼一致說(shuō)明密碼正確,登陸成功
if adminpwd = rs("adminpwd") then
‘登陸成功后 session("admin")起用
session("admin")=”admin”
rs.close
set rs = nothing
conn.close
set conn = nothing
‘登陸成功后就跳轉(zhuǎn)到管理頁(yè)面
response.redirect "adminmain.asp"
‘如果輸入的密碼與數(shù)據(jù)庫(kù)中密碼不一致說(shuō)明密碼輸入錯(cuò)誤
else
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('密碼錯(cuò)誤');window.location.href='adminlogin.asp';</script>"
3.2.3 管理員登陸成功頁(yè)
1.adminmain.asp頁(yè)面示例
圖3-11為管理員登陸成功后所看到的頁(yè)面。
圖3-11 管理員登陸成功
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的管理員表config。
4. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用判斷是否是管理員登陸文件
<!--#include file="isadmin.asp"-->
‘Html頁(yè)面顯示部分
……
<frameset rows="*" cols="100,*,0" framespacing="0" frameborder="NO" border="0">
<frame src="adminleft.asp" name="left" scrolling="NO" noresize>
<frame src="adminindex.asp" name="main" noresize>
3.2.4 增加資料欄目頁(yè)
1. addtype.asp頁(yè)面示例
圖3-12為增加欄目信息所看到的頁(yè)面。
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)僅有1個(gè)表單元素,如表4所示。
表4 addtype.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Addtype Text 欄目名稱 10
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)面用來(lái)增加欄目信息,使用了系統(tǒng)中的欄目信息記錄表type。
4. 頁(yè)面代碼分析
<%’取得欄目信息
sql = "select * from type"
set rs = server.createobject("adodb.recordset")
‘打開記錄集對(duì)象
rs.open sql,conn,1,1
‘顯示欄目信息
do while not rs.eof
response.write "<tr align='center'><td width=180>"&rs("type")&"</td>"
response.write "<td><a href=edittype.asp?id="&rs("typeid")&">編輯</a>/<a href=deltype.asp?id="&rs("typeid")&">刪除</a></td></tr>"
‘取下一條欄目信息
rs.movenext
loop
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
%>
‘Html頁(yè)面表單提交到addtype.doc
<form action="addtypeok.asp" method="post">
請(qǐng)輸入要添加的欄目名稱:<input type=text name="addtype" size=10><input type=submit name="submit" value="添加">
<br>(欄目名稱可以如“論文”、“實(shí)驗(yàn)素材”等)
</form>
3.2.5 增加欄目成功頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的欄目信息記錄表type。
3. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用判斷是否是管理員登陸文件
<!--#include file="isadmin.asp"-->
<%’取得輸入的欄目名稱
addtype = trim(request("addtype"))
if addtype = "" then
response.write "<script>alert('請(qǐng)輸入要添加的欄目名');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
if len(addtype) > 5 then
response.write "<script>alert('欄目名不得超過(guò)5個(gè)漢字');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
‘查找欄目信息表是否有欄目名相同的記錄
sql = "select * from type where type='"&addtype&"'"
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,3
‘如果有則提示
if not (rs.bof and rs.eof) then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('數(shù)據(jù)庫(kù)中已經(jīng)有一個(gè)名為"&addtype&"的欄目了');history.go(-1);</script>"
response.end
else
‘如果沒有記錄則可以添加了
rs.addnew
rs("type")=addtype
rs.update
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
end if
response.write "<script>alert('添加成功');window.location.href='addtype.asp';</script>"
%>
3.2.6 修改欄目信息頁(yè)
1. edittype.asp頁(yè)面示例
圖3-13為修改欄目信息所看到的頁(yè)面。
圖3-13 修改欄目信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)僅有1個(gè)表單元素,如表5所示。
表5 edittype.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Addtype Text 欄目名稱 10
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)用來(lái)修改欄目信息頁(yè)面,使用了系統(tǒng)中的欄目信息記錄表type。
4. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用判斷是否是管理員登陸文件
<!--#include file="isadmin.asp"-->
<%’取得要修改欄目信息的id號(hào)
id = trim(request("id"))
sql = "select * from type where typeid="&id
set rs = server.createobject("adodb.recordset")
‘打開欄目信息表查找需要修改的欄目名稱
rs.open sql,conn,1,1
filetype = rs("type")
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
%>
‘Html頁(yè)面顯示部分
……
‘Html頁(yè)面表單提交到edittypeok.asp
<form action="edittypeok.asp" method="post">
將欄目“<%=filetype%>”更名為:<input type=text name="addtype" size=10 value="<%=filetype%>">
<input type=hidden name="id" value="<%=id%>">
<input type=submit name="submit" value="修改">
<br>(欄目名稱可以如“論文”、“實(shí)驗(yàn)素材”等)
</form>
3.2.7 保存修改的欄目信息頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的欄目信息記錄表type。
3. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用判斷是否是管理員登陸文件
<!--#include file="isadmin.asp"-->
<%’取得要修改的欄目信息的id號(hào)
id = trim(request("id"))
addtype = trim(request("addtype"))
‘如果沒有輸入欄目名稱則提示
if addtype = "" then
response.write "<script>alert('請(qǐng)輸入欄目名');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
‘欄目名稱的長(zhǎng)度不能大于5
if len(addtype) > 5 then
response.write "<script>alert('欄目名不得超過(guò)5個(gè)漢字');history.go(-1);</script>"
conn.close
set conn = nothing
response.end
end if
‘打開欄目信息表查找需要修改的欄目名稱
sql = "select * from type where type='"&addtype&"' and typeid<>"&id
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,1
‘如果修改的名稱在數(shù)據(jù)庫(kù)中已經(jīng)有記錄則不能修改
if not (rs.bof and rs.eof) then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('數(shù)據(jù)庫(kù)中已經(jīng)有一個(gè)名為"&addtype&"的欄目了');history.go(-1);</script>"
response.end
end if
rs.close
set rs = nothing
‘如果修改的名稱在數(shù)據(jù)庫(kù)中沒有記錄了則可以修改
conn.execute "update type set type='"&addtype&"' where typeid="&id
conn.close
set conn = nothing
response.write "<script>alert('修改成功');window.location.href='addtype.asp';</script>"
%>
3.2.8 刪除欄目信息頁(yè)
1. deltype.asp頁(yè)面示例
圖3-14為刪除欄目信息所看到的頁(yè)面。
圖3-14 刪除欄目信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的欄目信息記錄表type。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到deltypeok.asp
<form action="deltypeok.asp" method="post">
<table style="BORDER-COLLAPSE: collapse" borderColor=#808080 width="250" border="1" align="center" cellpadding=1>
<tr><td align="center" class="header">將有下列數(shù)據(jù)被刪除</td></tr>
<tr><td align="left">
1.該欄目在數(shù)據(jù)庫(kù)中的記錄<br>
2.所有屬于該欄目的資料
</td></tr>
</table>
<center><input type=hidden name="id" value="<%=id%>"><br>
<input type=submit name="submit" value="確定"> <input type=button name="cancle" value="取消" onclick="history.go(-1);"></center>
</form>
3.2.9 刪除欄目信息成功頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的欄目信息記錄表type。
3. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用判斷是否是管理員登陸文件
<!--#include file="isadmin.asp"-->
<%’取得要?jiǎng)h除欄目信息的id號(hào)
id = trim(request("id"))
‘如果要?jiǎng)h除欄目信息的id號(hào)為空說(shuō)明非法操作
if id = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='adminmain.asp';</script>"
response.end
end if
‘查找對(duì)應(yīng)id號(hào)的欄目信息
sql = "select * from type where typeid="&id
set rs = server.createobject("adodb.recordset")
‘打開記錄集對(duì)象
rs.open sql,conn,1,1
‘對(duì)應(yīng)id號(hào)的欄目信息如果不存在則說(shuō)明該欄目不存在
if rs.bof and rs.eof then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='adminmain.asp';</script>"
response.end
end if
rs.close
set rs = nothing
‘對(duì)應(yīng)id號(hào)的欄目信息如果存在則刪除欄目信息
conn.execute "delete from type where typeid="&id
‘刪除資料信息中對(duì)應(yīng)欄目id號(hào)的資料信息
conn.execute "delete from main where idoftype="&id
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
response.write "<script>alert('刪除成功');window.location.href='addtype.asp';</script>"
%>
3.2.10 發(fā)布資料信息頁(yè)
1.pub.asp頁(yè)面示例
圖3-15為發(fā)布資料信息所看到的頁(yè)面。
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)共有6個(gè)表單元素,如表6所示。
表6 pub.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Teacher Text 教師姓名 15
Course Text 課程名稱 15
Title Text 資料標(biāo)題 52
Fileurl Text 資料地址 52
Filesize Text 資料大小 15
content textarea 資料簡(jiǎn)介 300
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)用來(lái)發(fā)布資料信息頁(yè)面,使用了系統(tǒng)中的欄目信息記錄表type。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到pubok.asp
<form action="pubok.asp" method="post" onSubmit=submitonce(this)>
‘Html頁(yè)面顯示部分,填寫資料信息
……
<%’取得欄目信息
sql = "select * from type"
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,1
%>
<select name="type">
<option value="" selected>請(qǐng)選擇</option>
<%’顯示欄目信息
do while not rs.eof
%>
<option value="<%=rs("typeid")%>"><%=rs("type")%></option>
<%’取下一條欄目信息
rs.movenext
loop
response.write "</select>"
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
%>
3.2.11 資料信息發(fā)布成功頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的資料信息記錄表main。
3.2.12 資料信息列表頁(yè)
圖3-16為資料信息列表頁(yè)面。
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)面用來(lái)顯示資料信息列表,使用了系統(tǒng)中的資料信息表main和教師信息表teacher。
4. 頁(yè)面代碼分析
代碼與3.2.8節(jié)的刪除欄目信息頁(yè)基本相同。
3.2.13 資料信息修改頁(yè)
1. edit.asp頁(yè)面示例
圖3-17為修改資料信息所看到的頁(yè)面。
圖3-17 修改資料信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)共有5個(gè)表單元素,如表7所示。
表7 edit.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Course Text 課題名稱 15
Title Text 資料標(biāo)題 52
Fileurl Text 資料地址 52
Filesize Text 資料大小 15
Content Textarea 資料簡(jiǎn)介 300
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)用來(lái)修改資料信息,使用了系統(tǒng)中的資料信息記錄表main。
4. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用判斷是否是教師登陸文件
<!--#include file="isteacher.asp"-->
‘引用網(wǎng)站設(shè)置文件
<!--#include file="fenlei.asp"-->
<%’取得要修改資料信息的id號(hào)
id = request("id")
‘必須輸入要修改資料信息的id號(hào)
if id = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='teachermain.asp';</script>"
response.end
end if
‘取得要顯示的資料信息
sql = "select * from main,teacher where main.idofteacher=teacher.teacherid and main.mainid="&id
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,1
‘如果信息不存在則不能修改
if rs.bof and rs.eof then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='teachermain.asp';</script>"
response.end
else
‘如果存在判斷用戶是否有修改資料的權(quán)限
if rs("teacherid") <> int(session("teacherid")) and session("admin") <> "admin" then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('這個(gè)資料不是你發(fā)布的,你想干什么?');top.window.location.href='teachermain.asp';</script>"
response.end
end if
end if
%>
‘Html頁(yè)面顯示部分,顯示要修改的資料信息
……
3.2.14 保存修改的資料信息頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的資料信息表main和教師信息表teacher。
3. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用判斷是否是教師登陸文件
<!--#include file="isteacher.asp"-->
‘引用網(wǎng)站設(shè)置文件
<!--#include file="fenlei.asp"-->
<%’取得表單提交的信息
'on error resume next
course = server.htmlencode(trim(request("course")))
fileurl = server.htmlencode(trim(request("fileurl")))
content = server.htmlencode(trim(request("content")))
title = server.htmlencode(trim(request("title")))
typeid = trim(request("type"))
filesize = int(trim(request("filesize")))
id = request("id")
‘必須輸入修改的資料的id號(hào)
if id = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='teachermain.asp';</script>"
response.end
end if
‘必須輸入資料名稱
if course = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)輸入資料名稱');history.go(-1);</script>"
response.end
end if
if len(course) > 25 then
conn.close
set conn = nothing
response.write "<script>alert('資料名稱不得超過(guò)25個(gè)漢字');history.go(-1);</script>"
response.end
end if
if fileurl = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)輸入資料地址');history.go(-1);</script>"
response.end
end if
if len(fileurl) > 100 then
conn.close
set conn = nothing
response.write "<script>alert('資料地址不得超過(guò)100個(gè)英文字母');history.go(-1);</script>"
response.end
end if
if title = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)輸入資料標(biāo)題');history.go(-1);</script>"
response.end
end if
if len(title) > 25 then
conn.close
set conn = nothing
response.write "<script>alert('資料標(biāo)題不得超過(guò)25個(gè)漢字');history.go(-1);</script>"
response.end
end if
if typeid = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)選擇資料類型');history.go(-1);</script>"
response.end
end if
if filesize < 1 then filesize = 0
if content = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)輸入簡(jiǎn)介');history.go(-1);</script>"
response.end
end if
‘取得要修改的資料信息
sql = "select * from main where mainid="&id
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,3
‘如果要修改的資料信息不存在
if rs.bof and rs.eof then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='teachermain.asp';</script>"
response.end
else
‘判斷用戶是否有修改資料的權(quán)限
if rs("idofteacher") <> int(session("teacherid")) and session("admin") <> "admin" then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('這個(gè)資料不是你發(fā)布的,你想干什么?');top.window.location.href='teachermain.asp';</script>"
response.end
else
‘如果有修改權(quán)限就修改資料信息
rs("fileurl")=fileurl
rs("course")=course
rs("dateandtime")=now()
rs("content")=content
rs("title")=title
rs("idoftype")=cint(typeid)
rs("filesize")=filesize
‘修改成功
rs.update
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
end if
end if
response.write "<script>alert('修改成功');window.location.href='edit.asp?id="&id&"';</script>"
3.2.15 刪除資料信息頁(yè)
1. admindelcourseware.asp頁(yè)面示例
圖3-18為刪除資料信息所看到的頁(yè)面
圖3-18 個(gè)人基本檔案
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)并沒有涉及到數(shù)據(jù)庫(kù)表的操作。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到admindelcoursewareok.asp刪除資料信息
<form action="admindelcoursewareok.asp" method="post">
<table style="BORDER-COLLAPSE: collapse" borderColor=#808080 width="250" border="1" align="center" cellpadding=1>
<tr><td align="center" class="header">將有下列數(shù)據(jù)被刪除</td></tr>
<tr><td align="left">
1.該資料在數(shù)據(jù)庫(kù)中的記錄<br>
2.與該資料相關(guān)的已上傳資料
</td></tr>
</table>
<center><input type=hidden name="id" value="<%=id%>"><input type=hidden name="teacherid" value="<%=teacherid%>"><br>
<input type=submit name="submit" value="確定"> <input type=button name="cancle" value="取消" onclick="history.go(-1);"></center>
</form>
3.2.16 刪除資料信息成功頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的資料信息表main。
3. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用判斷是否是管理員登陸文件
<!--#include file="isadmin.asp"-->
<%’取得教師信息的id號(hào)
id = trim(request("id"))
teacherid = trim(request("teacherid"))
‘必須輸入教師id號(hào)和資料信息id號(hào)
if id = "" or teacherid = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='adminmain.asp';</script>"
response.end
end if
‘取得資料信息
sql = "select * from main where mainid="&id
set rs = server.createobject("adodb.recordset")
‘打開記錄集對(duì)象
rs.open sql,conn,1,1
‘判斷信息是否存在,如果不存在則不能刪除信息
if rs.bof and rs.eof then
rs.close
set rs = nothing
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂');top.window.location.href='adminmain.asp';</script>"
response.end
else
‘如果信息存在則先取到文件地址先刪除
fileurl = rs("fileurl")
rs.close
set rs=nothing
'如果資料已上傳至本地,則刪除資料
if left(fileurl,6) = "files/" and mid(fileurl,7,len(teacherid)+2) = teacherid&"at" then
dim filepaths,objFSO
on error resume next
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
filepaths=Server.MapPath(""&fileurl&"")
if objFSO.fileExists(filepaths) then
objFSO.DeleteFile(filepaths)
end if
set objFSO = nothing
end if
‘刪除資料信息
conn.execute "delete from main where mainid="&id
‘關(guān)閉記錄集對(duì)象
conn.close
set conn = nothing
response.write "<script>alert('刪除成功');window.location.href='list.asp?teacherid="&teacherid&"';</script>"
end if
%>
3.3 教師管理
教師模塊包含以下頁(yè)面。
● adminteacher.asp
● adminsearchteacher.asp
● addteacher.asp
● addteacherok.asp
● editteacher.asp
● editteacherok.asp
● delteacher.asp
● delteacherok.asp
各頁(yè)面間的關(guān)系如圖3-19所示。
3-19 各頁(yè)面間的關(guān)系
3.3.1 搜索教師頁(yè)
1. adminteacher.asp頁(yè)面示例
圖3-20為搜索教師信息所看到的頁(yè)面。
圖3-20 搜索教師信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)共有4個(gè)表單元素,如表8所示。
表8 adminteacher.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Fenlei1 text 教師所屬學(xué)院 15
Fenlei2 Text 教師所屬系 15
Teacher Text 教師姓名 15
Id Text 教師ID 15
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)并沒有涉及到數(shù)據(jù)庫(kù)表的操作。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到adminsearchteacher.asp搜索教師
<form action="adminsearchteacher.asp" method="post">
‘Html頁(yè)面顯示部分,填寫教師搜索信息
……
</form>
3.3.2 教師搜索結(jié)果頁(yè)
1. adminsearchteacher.asp頁(yè)面示例
圖3-21為教師信息列表所看到的頁(yè)面。
圖3-21 教師信息列表
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)面用來(lái)顯示教師信息列表,使用了系統(tǒng)中的教師信息表teacher。
3.3.3 添加教師信息頁(yè)
1. addteacher.asp頁(yè)面示例
圖3-22為添加教師信息所看到的頁(yè)面。
3-22 添加教師信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)用來(lái)添加教師信息,頁(yè)面中共有13個(gè)表單元素,如表9所示。
表9 addteacher.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Fenlei1 text 教師所屬學(xué)院 25
Fenlei2 text 教師所屬系 25
Teacher text 教師姓名 25
Loginname text 登陸名 22
Password text 密碼 25
Password1 text 確認(rèn)密碼 25
Ask text 密碼找回問題 25
Answer text 密碼找回答案 25
Email text 電子郵件 25
Homepage text 個(gè)人主頁(yè) 25
Qq text QQ號(hào)碼 25
Address text 通訊地址 25
intro textarea 個(gè)人簡(jiǎn)介 150
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)并沒有涉及到數(shù)據(jù)庫(kù)表的操作。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到addteacherok.asp增加教師信息
<form action="addteacherok.asp" method="post" onSubmit=submitonce(this)>
‘Html頁(yè)面顯示部分,填寫教師信息
……
</form>
3.3.4 添加教師成功頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的教師信息表teacher。
3.3.5 修改教師信息頁(yè)
1. editteacher.asp頁(yè)面示例
圖3-23為修改教師信息所看到的頁(yè)面。
圖3-23 修改教師信息
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)用來(lái)修改教師信息,頁(yè)面中共有14個(gè)表單元素,如表10所示。
表10 editteacher.asp頁(yè)的表單元素
名稱 表單元素類型 含義 最大長(zhǎng)度
Fenlei1 Text 教師所屬學(xué)院 25
Fenlei2 Text 教師所屬系 25
Teacher Text 教師姓名 25
Loginname Text 登陸名 22
Password Text 密碼 25
Password1 Text 確認(rèn)密碼 25
Ask Text 密碼找回問題 25
Answer Text 密碼找回答案 25
Email Text 電子郵件 25
Homepage Text 個(gè)人主頁(yè) 25
Qq Text QQ號(hào)碼 25
Address Text 通訊地址 25
Photourl Text 照片地址 25
intro Textarea 個(gè)人簡(jiǎn)介 150
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的教師信息表teacher。
4. 頁(yè)面代碼分析
‘引用創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象函數(shù)文件
<!--#include file="conn.asp"-->
‘引用網(wǎng)站設(shè)置文件
<!--#include file="fenlei.asp"-->
‘引用判斷是否是管理員登陸文件
<!--#include file="isadmin.asp"-->
<%’取得要?jiǎng)h除教師信息的id號(hào)
id = request("id")
if id = "" then
conn.close
set conn = nothing
response.write "<script>alert('請(qǐng)不要搗亂!!!');top.window.location.href='adminmain.asp';</script>"
end if
‘取得對(duì)應(yīng)教師id號(hào)的教師信息
sql = "select * from teacher where teacherid="&id
set rs = server.createobject("adodb.recordset")
‘打開記錄集對(duì)象
rs.open sql,conn,1,1
%>
‘Html頁(yè)面顯示部分,顯示資料的修改信息
……
<%’顯示教師是否允許登陸
if rs("locked") = 1 then
response.write "<input type=radio name=locked value='0'>允許登陸"
response.write "<input type=radio name=locked value='1' checked>禁止登陸"
else
response.write "<input type=radio name=locked value='0' checked>允許登陸"
response.write "<input type=radio name=locked value='1'>禁止登陸"
end if
‘關(guān)閉記錄集對(duì)象
rs.close
set rs = nothing
‘關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象
conn.close
set conn = nothing
%>
3.3.6 修改教師信息成功頁(yè)
1. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
2. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的教師信息表teacher。
3.3.7 刪除教師信息頁(yè)
1. delteacher.asp頁(yè)面示例
圖3-24為刪除教師信息所看到的頁(yè)面。
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)并沒有涉及到數(shù)據(jù)庫(kù)表的操作。
4. 頁(yè)面代碼分析
‘Html頁(yè)面表單提交到delteacherok.asp刪除教師信息
<form action="delteacherok.asp" method="post">
‘Html頁(yè)面顯示部分
3.3.8 刪除教師信息成功頁(yè)
2. 頁(yè)面中需要用戶填寫的Html表單元素
此頁(yè)無(wú)需填寫Html表單元素。
3. 頁(yè)面所涉及的數(shù)據(jù)庫(kù)表信息
此頁(yè)使用了系統(tǒng)中的教師信息表teacher。
第四章 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)功能設(shè)計(jì)要求和模塊劃分,本站的數(shù)據(jù)庫(kù)主要存儲(chǔ)資料信息、教師信息、回復(fù)信息和欄目信息。
4.1 數(shù)據(jù)庫(kù)需求分析
數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下。
資料信息表: MainID(自動(dòng)編號(hào))、標(biāo)題、簡(jiǎn)介、文件大小、文件類型、更新日期、相關(guān)課程、教師姓名、文件地址和下載次數(shù)等。
教師信息: teacherid(自動(dòng)編號(hào))、教師姓名、所屬學(xué)院、所屬系、E-mail地址、個(gè)人主頁(yè)、QQ號(hào)碼和通訊地址。
回復(fù)作業(yè)表:ID(自動(dòng)編號(hào))、學(xué)生姓名、作業(yè)標(biāo)題、作業(yè)內(nèi)容、作業(yè)的id號(hào)和回復(fù)日期。
欄目信息表:typeID(自動(dòng)編號(hào))、欄目名稱。
4.2 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)
1. 資料信息表main,如圖4-1所示。
圖4-1 資料信息表
2. 教師信息表teacher,如圖4-2所示。
3. 回復(fù)作業(yè)表work,如圖4-3所示。
圖3-3 回復(fù)作業(yè)表
4. 欄目信息表type,如圖4-4所示。
圖4-4 欄目信息表
4.3 數(shù)據(jù)庫(kù)連接說(shuō)明
Conn.asp文件的數(shù)據(jù)庫(kù)連接程序如下。
<% Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("edu.mdb")&";"
%>
第五章 測(cè)試和維護(hù)
5.1 網(wǎng)站維護(hù)
1、服務(wù)器及相關(guān)軟硬件的維護(hù),對(duì)可能出現(xiàn)的問題進(jìn)行評(píng)估,制定響應(yīng)時(shí)間。
2、數(shù)據(jù)庫(kù)維護(hù),有效地利用數(shù)據(jù)是網(wǎng)站維護(hù)的重要內(nèi)容,因此數(shù)據(jù)庫(kù)的維護(hù)要受到重視。
3、內(nèi)容的更新、調(diào)整等。
4、制定相關(guān)網(wǎng)站維護(hù)的規(guī)定,將網(wǎng)站維護(hù)制度化、規(guī)范化。
5.2 網(wǎng)站測(cè)試
網(wǎng)站發(fā)布前要進(jìn)行細(xì)致周密的測(cè)試,以保證正常瀏覽和使用。主要測(cè)試內(nèi)容:
1、服務(wù)器穩(wěn)定性、安全性。
2、程序及數(shù)據(jù)庫(kù)測(cè)試。
3、網(wǎng)頁(yè)兼容性測(cè)試,如瀏覽器、顯示器。
4、根據(jù)需要的其他測(cè)試。
參考文獻(xiàn)
[1] 龍馬工作室. ASP+Access 組建動(dòng)態(tài)網(wǎng)站 實(shí)例精講. 人民郵電出版社,2005
[2] 于繁華.Access基礎(chǔ)教程. 中國(guó)水利水電出版社,2006
[3] 阮文江. java script程序設(shè)計(jì)基礎(chǔ)教程. 人民郵電出版社,2006
致謝
經(jīng)過(guò)兩個(gè)月的忙碌和工作,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒有輔導(dǎo)老師的督促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以想象的。
在這里首先要感謝我的輔導(dǎo)老師葉劍春。他平日里工作繁多,但在我做畢業(yè)設(shè)計(jì)的每個(gè)階段,從外出實(shí)習(xí)到查閱資料,設(shè)計(jì)草案的確定和修改,中期檢查,后期詳細(xì)設(shè)計(jì),裝配草圖等整個(gè)過(guò)程中都給予了我悉心的指導(dǎo)。我的設(shè)計(jì)較為復(fù)雜煩瑣,但是葉劍春老師仍然細(xì)心地糾正圖紙中的錯(cuò)誤。除了敬佩葉劍春老師的專業(yè)水平外,他的治學(xué)嚴(yán)謹(jǐn)和科學(xué)研究的精神也是我永遠(yuǎn)學(xué)習(xí)的榜樣,并將積極影響我今后的學(xué)習(xí)和工作。
其次要感謝幫助我一起作畢業(yè)設(shè)計(jì)的眾多網(wǎng)友,他們?cè)诒敬卧O(shè)計(jì)中給了我大力的幫助,出謀劃策各展所能的幫助我完成此次畢業(yè)設(shè)計(jì),如果沒有他們的大力幫助,此次設(shè)計(jì)的完成將變得非常困難。
然后還要感謝大學(xué)三年來(lái)所有的老師,為我們打下計(jì)算機(jī)專業(yè)知識(shí)的基礎(chǔ);同時(shí)還要感謝所有的同學(xué)們,正是因?yàn)橛辛四銈兊闹С趾凸膭?lì)。此次畢業(yè)設(shè)計(jì)才會(huì)順利完成。
最后感謝工商職業(yè)學(xué)院三年來(lái)對(duì)我的大力栽培。
【ASP在線教育系統(tǒng)(一)】相關(guān)文章:
在線教育系統(tǒng)ASP+SQL03-08
在線考試系統(tǒng)的設(shè)計(jì)ASP+ACCESS03-08
基于ASP的在線商品銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ASP+SQL03-08
基于ASP.NET在線考試系統(tǒng)設(shè)計(jì)ASP.NET+SQL03-08
在線英語(yǔ)考試系統(tǒng)ASP+SQL03-08
在線就業(yè)招聘系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)ASP+Access03-08
在線考試及自動(dòng)評(píng)分系統(tǒng)ASP+SQL03-08