版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
校園網(wǎng)站設(shè)計灤縣二中秦洪波第一章諸論在Internet飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟、生活等各個方面發(fā)揮著重要的作用。Internet上發(fā)布信息主要是通過網(wǎng)站來實現(xiàn)的,獲取信息也是要在Internet“海洋”中按照一定的檢索方式將所需要的信息從網(wǎng)站上下載下來。因此網(wǎng)站建設(shè)在Internet應用上的地位顯而易見,它已成為政府、企事業(yè)單位信息化建設(shè)中的重要組成部分,從而倍受人們的重視。為了更好的辦學,提高學校知名度,特構(gòu)建長沙市工商職業(yè)中專學校網(wǎng)站。1.1設(shè)計思想通過網(wǎng)站,全面宣傳,展示學校風采、優(yōu)點與特色,發(fā)布學校的重大活動安排與招生政策,增強家長與學校之間的聯(lián)系,在Internet上實現(xiàn)完成部分校務,提高辦事效率。1.2開發(fā)工具的選用及介紹ASP的優(yōu)勢:ActiveServerPages:“動態(tài)服務器網(wǎng)頁”,一般簡稱為,ASP”,ASP之所以能受到大家的重視與使用的原因,主要在于所產(chǎn)生的執(zhí)行結(jié)果都是標準的HTML格式,而且這些程序是在網(wǎng)絡(luò)服務端中執(zhí)行,使用一般的瀏覽器(如IE或Netscape)都可以正確地獲得ASP的“執(zhí)行”結(jié)果,并且將這ASP執(zhí)行的結(jié)果直接在瀏覽器中“瀏覽”,不像VBScript或JavaScript是在客戶端(Client)的瀏覽器上執(zhí)行,若使用VBScript來設(shè)計程序,客戶端(Client)在1已瀏覽器中可以顯示程序執(zhí)行的結(jié)果,可是,客戶端(Cient)若使用Netscape瀏覽器就無法顯示VBScript的執(zhí)行結(jié)果。ASP的特點:任何開發(fā)工具皆可發(fā)展ASP只要使用一般的文書編輯程序,如Windows記事本,就可以編輯。當然,其他網(wǎng)頁發(fā)展工具,例如,F(xiàn)rontPageExpress、FrontPage等也都可以;不過還是建議你用記事本來寫,既省錢又方便,若是使用那些所見即所得的網(wǎng)頁編輯來寫ASP,可能會發(fā)生一些意想不到的離奇狀態(tài)。通吃各家瀏覽由于ASP程序是在網(wǎng)絡(luò)服務器端中執(zhí)行,執(zhí)行結(jié)果所產(chǎn)生的HTML文件適用于不同的瀏覽器。語言相容性高ASP與所有的ActiveXScript語言都相容,除了可結(jié)合HTML,VBScript、JavaScript、ActiveX服務器組件來設(shè)計外,并可經(jīng)由“plug-In(外掛組件模組)的方式,使用其他廠商(ThirdParty)所提供的語言。隱密安全性高如果我們在瀏覽器中直接查看網(wǎng)頁的原始代碼,就只能看到HTML文件,原始的ASP程序代碼是看不到的!這是因杰ASP程序先于網(wǎng)站服務(盹bServer)端執(zhí)行后,將結(jié)果轉(zhuǎn)換成標準HTML文件,再傳送到客戶端(Client)的瀏覽器上,因此,我們所辛苦撰寫的ASP程序并不會輕易地被看見進而被盜用。易于操控數(shù)據(jù)庫ASP可以輕易地通過0DBC(OpenDatabaseConnectivity)驅(qū)動程序連接各種不同的數(shù)據(jù)庫,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可將“文本文件”或是”Excel"文件當成數(shù)據(jù)庫用。面向?qū)ο髮W習容易ASP具備有面向?qū)ο?Object-Oriented)功能,學習容易,ASP提供了五種方便能力強大的內(nèi)建對象:Request、Response、Sever、Application以及Session,同時,若使用ASP內(nèi)建的“Application”對象或"Session”對象所撰寫出來的ASP程序可以在多個網(wǎng)頁之間暫時保存必要的信息。ASP的六大內(nèi)部對象對象名稱功能描述RequestResponseServerSessionApplicationObjectContext從客戶端取得信息將信息送給客戶端提供一些Web服務器工具儲存在一個Session內(nèi)的用戶信息,該信息僅可被該用戶訪問在一個ASP-Application中讓不同的客戶端共享信息可以用來配合MicrosoftTransaction服務器進行分布式事務處理所以我選擇了ASP結(jié)合Frontpage架構(gòu)長沙市工商職業(yè)中專學校網(wǎng)站第二章網(wǎng)站總體分析與設(shè)計2.1網(wǎng)站系統(tǒng)分析根據(jù)前面的設(shè)計思想進行分析,按照系統(tǒng)開發(fā)的基本觀點對網(wǎng)站進行分解,從內(nèi)容上可對網(wǎng)站作如下劃分:l學校風采通過學校概括、教師風采、校園之星及部分圖片等內(nèi)容來展現(xiàn)。l優(yōu)點特色通過新聞、生動活潑的教育教學欄目來展現(xiàn)。l信息發(fā)布通過公告欄、信息查詢等欄目來實現(xiàn),內(nèi)容有招生政策、活動安排等。l部分校務根據(jù)校務的公開程度與參與人數(shù)的多少,特選擇圖書管理、評優(yōu)、考試查分、家校聯(lián)系四大校務在網(wǎng)上實現(xiàn)。2.2主頁設(shè)計網(wǎng)站主頁采用靜、動相結(jié)合的方式,即靜態(tài)的主畫面和動態(tài)的圖片相結(jié)合,體現(xiàn)學校的勃勃生氣,靜態(tài)主頁方式介紹學校風采、優(yōu)點特色、信息發(fā)布,對于四大校務,就得利用ASP與數(shù)據(jù)庫結(jié)合的技術(shù)建立數(shù)據(jù)庫查詢管理系統(tǒng),采用交互式的動態(tài)的web畫面來實現(xiàn)。主頁結(jié)構(gòu)圖注:帶下劃線的表示是鏈接方式2.3數(shù)據(jù)庫設(shè)計采用的數(shù)據(jù)庫是MicrosoftAccess,擬建立teach.mdb庫文件,包含如下幾個表文件:allmessage留言信息表Libbooks圖書信息表Libcategories圖書類別信息表Libemps圖書館用戶信息表;stud學生信息表第三章詳細設(shè)計3.1家長學校聯(lián)絡(luò)簿3.1.1功能:利用SQL語法過濾特定的家長留言意見,讓老師可以針對某位特定學生家長所發(fā)表的意見作出獨立的回答,同時,家長在發(fā)表個人意見時,若認為意見內(nèi)容涉及敏感的話題或是意見內(nèi)容涉及私人隱私,都可用“悄悄話”的方式發(fā)言,這些“悄悄話”將不會被顯示出來讓大家看到,當然,老師擁有管理的能力,只要以密碼登錄管理模式,就可以進行各個學生家長的單獨意見回復,而且還能看到家長們所留下的“悄悄話”。3.1.2組成構(gòu)造共分成六大部分:1,意見留言結(jié)果網(wǎng)頁guest.asp:用來顯示家長發(fā)言與老師回復內(nèi)容,同時還具備一般模式與管理模式兩種顯示方法。2,家長發(fā)言表單網(wǎng)頁addmsg.asp:讓學生家長填寫發(fā)言內(nèi)容并選擇發(fā)言性質(zhì)。3,家長發(fā)言數(shù)據(jù)處理ASP程序add.asp:處理家長發(fā)表的意見數(shù)據(jù),同時將這些意見數(shù)據(jù)記錄起來并將網(wǎng)頁顯示轉(zhuǎn)向至意見留言結(jié)果網(wǎng)頁。4,老師回復表單網(wǎng)頁teachans.asp:讓老師針對某位特定學生家長所發(fā)表的意見作出獨立的回答。5,老師回復數(shù)據(jù)處理ASP程序anssave.asp:處理老師回復的數(shù)據(jù)內(nèi)容,同時將這些意見數(shù)據(jù)起來并將網(wǎng)頁顯示轉(zhuǎn)向至意見留言結(jié)果網(wǎng)頁。6,數(shù)據(jù)表文件allmessage:用來儲存家長發(fā)言數(shù)據(jù)與老師回復數(shù)據(jù)的Access類型數(shù)據(jù)庫文件?!皵?shù)據(jù)表文件”負責存放家長發(fā)言數(shù)據(jù)與老師回復內(nèi)容的數(shù)據(jù)記錄,為Access類型的庫文件,將它定名為:“message.mdb”。下圖為家庭聯(lián)絡(luò)簿的組成與流程圖:老師回復家長留言讀入寫入寫入3.1.3數(shù)據(jù)庫結(jié)構(gòu)設(shè)計數(shù)據(jù)庫文件"teach.mdb“中的數(shù)據(jù)表”allmessage“的欄目設(shè)置,如下圖:字段名字段類型3.1.4界面設(shè)計與重點、難點代碼的設(shè)計數(shù)據(jù)庫與留言顯示程序網(wǎng)頁家長發(fā)言與老師回復的內(nèi)容數(shù)據(jù)全部儲存在數(shù)據(jù)庫中,要在網(wǎng)頁中顯示目前的家長發(fā)言與老師回復數(shù)據(jù),必須先進行數(shù)據(jù)庫的鏈接與打開,要鏈接數(shù)據(jù)庫我們必須使用ADO對象群的Connection對象;而要打開數(shù)據(jù)庫則必須使用ADO對象群的Recordset對象,程序:setcn=server.createobject("adodb.connection")cn.open"filedsn=c:\programfiles\commonfiles\odbc\datasources\msaccessdatabase.dsn"setrs=server.createobject("adodb.recordset")sql="select*fromallmessageorderby留言時間desc"rs.opensql,cn,1,1Recordset對象是負責瀏覽與操作從數(shù)據(jù)庫取出來的數(shù)據(jù),Connection對象只負責與數(shù)據(jù)庫進行鏈接的動作,并不能使用數(shù)據(jù)庫內(nèi)的數(shù)據(jù),因此必須建立一個可以存取數(shù)據(jù)庫數(shù)據(jù)的Recordset對象,使用RS.Open方法存取"teach.mdb”數(shù)據(jù)庫RS.OpenSQL,CN,1,1使用open方法來打開數(shù)據(jù)表或執(zhí)行Select指令參數(shù)設(shè)置如下:1,參數(shù)一(SOURCE):為欲打開的數(shù)據(jù)表或SQL指令。2,參數(shù)二(ActionConnection):指定一個已打開的數(shù)據(jù)庫對象,將此參數(shù)設(shè)為鏈接我們已經(jīng)建立好的Connection對象“CN”。3,參數(shù)三(CursorType):指定Recordset的打開類型,1為可讀寫且可自由移動。4,參數(shù)四(LockType):指定鎖定類型,1為只讀。數(shù)據(jù)排序與SQL指令1.Select指令的篩選語句:格式:Select...From在SQL語言中:“Select”數(shù)據(jù)表“中選取某些“欄位”的數(shù)據(jù).2.如果要選取的數(shù)據(jù)表數(shù)據(jù)包含了一個以上的欄位,則我們可以利用“,”逗號來欄位名稱隔開。3.如果要選取的數(shù)據(jù)表數(shù)據(jù)包含了全部的欄位,則可以利用萬用字符“*”來代表全部的欄位??膳判驍?shù)據(jù)的Select指令1.當我們希望被選取出來的數(shù)據(jù)記錄數(shù)據(jù)能夠依據(jù)某個或某幾個欄位的內(nèi)容來排序時,只要將這些排序依據(jù)的欄位擺放在“OrderBy“保留字之后,然后將這處排序的語句連接在"Select...From“后面就行了。2.“OrderBy“默認的排序方式是“由小排到大”,但若是希望排序方式是“由大排到小”,則我們可在欄位名稱后再加上“Desc“保留字!將排序方式改為,由大排到小“。在“顯示留言意見”網(wǎng)頁中的打開數(shù)據(jù)庫ASP程序中的語句:SELECT*Fromallmessageorderby留言日期Desc功能為:從數(shù)據(jù)表Wlmessage“中取出所有欄位的數(shù)據(jù),并將取出的數(shù)據(jù)記錄內(nèi)容依照,留言日期“欄位使用的”由大排到小“排序方式進行排序。留言顯示網(wǎng)頁的管理模式“顯示留言意見”的網(wǎng)頁就必須具備顯示模式選擇的功能,當顯示模式在一般情況時要能顯示家長們的一般性發(fā)言,同時還得將“悄悄話“的發(fā)言隱藏起來。當老師以密碼登錄成為管理模式時,則必須將一般性發(fā)言與悄悄話發(fā)言的數(shù)據(jù)全部顯示出來,同時還得讓老師們可以針對某位特定學生家長所發(fā)表的意見作出獨立的回答。這兩個情況是通過密碼登錄管理模式的ASP程序?qū)崿F(xiàn)的:<formmethod="post"><%ifsession("checkedit")="yes"then%><inputtype="hidden"value="yes"name="goexit">vinputtype="submit"value="離開管理模式"〉<%else%>密碼:vinputtype="password"name="password"size="4"maxlength="4">  vinputtype="submit"value="教師管理"〉v%endif%>v/form>在這段網(wǎng)頁語句中,利用Session對象來記錄目前的工作模式。當我們第一次進入“顯示留言意見”網(wǎng)頁的時候,我們所見的網(wǎng)頁畫面一定是一般!因為Session尚未被建立,因此它的“變量”值一定不會是“yes”,所以網(wǎng)頁中會出現(xiàn)一個輸入密碼進入“教師管理”模式的欄位,只有當我們輸入密碼按下“教師管理”的按鈕組織上發(fā)ASP程序中的進入管理模式語句后‘Session對象才會被建立,同時,“checkedit“Session對象變量值被設(shè)置為“yes“,所以我們就進入了能將一般性發(fā)言與悄悄話發(fā)言的數(shù)據(jù)全部顯示出來,同時還讓教師們可以針對某位特定學生家長所發(fā)表的意見作出獨立回答的管理模式頁面。留言顯示網(wǎng)頁的分頁當家長的發(fā)言與老師回復的數(shù)據(jù)筆數(shù)太多時,一次要將全部的數(shù)據(jù)內(nèi)容顯示在網(wǎng)頁中,等待網(wǎng)頁下載的時間太長了,因此采用固定筆數(shù)分頁瀏覽方式來顯示網(wǎng)頁。要進行分頁顯示,得先知道目前有多少筆的留言數(shù)據(jù),而留言數(shù)據(jù)筆數(shù)可以通過Recordset對象的“Recordcount"(記錄個數(shù))屬性得知,我們將每10筆數(shù)據(jù)為一單位分頁顯示:count=rs.recordcountifcount/10>(count\10)thentotalpage=(count\10)+1elsetotalpage=(count\10)endif“/”為浮點數(shù)除法,“\”為整數(shù)除法。跳頁選擇的ASP程序語句所有的發(fā)言數(shù)據(jù)采用固定筆數(shù)分頁瀏覽的方式來顯示后,還要提供一個跳頁鏈接顯示的功能,讓瀏覽者可以選擇希望瀏覽的頁次進得瀏覽,ASP程序語句:pagecount=0rs.movefirstifrequest.querystring("topage")v>""thenpagecount=cint(request.querystring("topage"))ifpagecountv=0thenpagecount=1ifpagecount>totalpagethenpagecount=totalpagers.move(pagecount-1)*10發(fā)言表單網(wǎng)頁制作insetu3表單的參數(shù)表單的Action參數(shù):Action參數(shù)是用來指定Server端處理此一表單數(shù)據(jù)內(nèi)容的程序,此處表單處理ASP程序為“add.asp“,表單的Mothed參數(shù):要將表單傳送至Server端的方式有兩種,設(shè)置值分別為GET及POST,若設(shè)置為POST,則瀏覽器會等Server端來讀取數(shù)據(jù),若設(shè)置為GET,則當我們按下送出按鈕時,瀏覽器會立即將表單中的數(shù)據(jù)內(nèi)傳送出去。利用POST方法,在傳送的數(shù)據(jù)上將不受限制,利用GET方法傳送的數(shù)據(jù)量則大約只有2K左右。留言處理程序要將家長發(fā)言數(shù)據(jù)作后續(xù)處理及將這些數(shù)據(jù)內(nèi)容存入數(shù)據(jù)庫,須利用添加數(shù)據(jù)記錄的InsertInto指令,然后再寫入數(shù)據(jù)庫文件中:Insetinto指令語句格式:Insertinto數(shù)據(jù)表名(欄目名)values(欄目值)sql="insertintoallmessage(家長姓名,留言主題,聯(lián)絡(luò)信箱,留言內(nèi)容,私人公開,留言時間,班級)values("sql=sql&"'"&parent&"',"sql=sql&"'"&subject&"',"sql=sql&"'"&email&"',"sql=sql&"'"&memo&"',"sql=sql&"'"&personal&"',"sql=sql&"'"&now&"',"sql=sql&"'"&bj&"')"cn.executesql回復表單程序網(wǎng)頁必須讓老師們可以針對某位特定學生家長所發(fā)表的意見作出獨立的回答,使用Select...From...Where篩選語句sql="select*fromallmessagewhere(編號="&ID&”)"rs.opensql,cn,1,3然后將特定的家長發(fā)言數(shù)據(jù)放在表單,方法是將數(shù)據(jù)庫中的數(shù)據(jù)取出來,然后放在表單欄位中:“家長姓名“欄位網(wǎng)頁語句標簽<tdbgcolor="#CCCCFF"xfontsize="2"x%=RS('家長姓名")%>vfont>v/td>“留言主題“欄位網(wǎng)頁語句標簽<tdbgcolor="#CCCCFF"><fontsize="2"><%=RS("留言主題”)%>v/font>v/td>“留言內(nèi)容“欄位網(wǎng)頁語句標簽<tdbgcolor="#CCCCFF"><fontsize="2"><%=RS("留言內(nèi)容”)%>vfont>v/td>老師在回復欄位中所填入的數(shù)據(jù),必須送給處理老師回復數(shù)據(jù)的ASP程序”anssave.asp”來記錄以及處理這些回復數(shù)據(jù)。當老師填寫好回復發(fā)言的數(shù)據(jù)后按下“送出回復”按鈕后,表單中的數(shù)據(jù)內(nèi)容就會以“POST”的方式由SEVER端讀取,然后將數(shù)據(jù)內(nèi)容交由處理老師回復數(shù)據(jù)的ASP程序“anssave.asp”來將數(shù)據(jù)內(nèi)容寫入數(shù)據(jù)庫。3.2網(wǎng)上圖書館網(wǎng)上圖書館將學校圖書館圖書放到網(wǎng)絡(luò)上供人借閱,這樣不僅方便了校內(nèi)的學生與教職員工使用圖書館的資源,還為圖書館管理員提供了一種簡便地管理圖書館的方法.3.2.1功能網(wǎng)上圖書館系統(tǒng)可以進行圖書的出借和歸還.還可以在系統(tǒng)中按照多種字段對圖書進行查找,還可以瀏覽某個種類的所有圖書.該應用程序也為圖書館管理員提供了一些功能,如添加、編輯以及刪除圖書等,或者在分類層次結(jié)構(gòu)中添加新的種類。3.2.2系統(tǒng)的層次結(jié)構(gòu)下圖的每個方框代表校園圖書館網(wǎng)站中的一個頁面。除了只包含HTML的Search頁面外,其他的均為ASP頁面。因為每個圖書的頁面都不同,所以大多數(shù)的頁面實際上都是多頁面。數(shù)據(jù)庫設(shè)計本系統(tǒng)共使用3個數(shù)據(jù)表:LibBooks表包含與圖書有關(guān)的所有數(shù)據(jù)。該表中的字段內(nèi)容的圖書的通用信息。另外,對于已經(jīng)出借的圖書,該表中還包含借閱該圖書的用戶的ID號,以及圖書的狀態(tài)。表視圖如下:字段名意義字段類型字段名意義字段類型bookid書號(主鍵)數(shù)字(nonull)status狀態(tài)文本title書名文本checkedoutto用戶id數(shù)字author著者文本reservedby用戶學號數(shù)字Subject主題文本description描述文本IsbnIsbn號文本keywords關(guān)鍵字文本LibCategories表包含Library中的所有類別,在訪問者瀏覽圖書列表時將會用到這些類別。每個類別都可以作為另外類別的父類別。有一個特殊的類別,Top-Leve1沒有出現(xiàn)在類別列表中,但是可以作為其他任何類別的父類別。字段名意義字段類型Categoryname類別文本(noll)parentcategory父類另U文本(noll)LibEmps表包含可以訪問圖書館網(wǎng)站的用戶信息。該表包含一些通用的信息字段,比如用于進入圖書館的用戶密碼等。字段名意義字段類型字段名意義字段類型empid用戶id(主鍵nonull)數(shù)字password用戶密碼文本Empname用戶姓名文本manager管理員代號數(shù)字emailaddress用戶郵箱文本圖書館數(shù)據(jù)庫的數(shù)據(jù)關(guān)系如圖9-22所示。其中表LibEmps和表LibCategories與表LibBooks之間都是一對多的關(guān)系。每個雇員都可以借閱多本圖書,每個類別都可以包含多本圖書。界面設(shè)計與重點代碼的設(shè)計網(wǎng)上圖書館系統(tǒng)有兩種用戶,一是管理員。另一種是只允許使用圖書館系統(tǒng),而沒有管理功能的一般用戶。訪問者進入網(wǎng)站,首先要進行登錄,如下圖所示。登錄頁面(index.asp)訪問者輸入E-mail地址和密碼來登錄,然后單擊“登錄”按鈕。輸入的數(shù)據(jù)提交后與數(shù)據(jù)庫中的用戶表進行匹配。須創(chuàng)建一個記錄來保存基于訪問者登錄的用戶信息setRSFindEmp=conn.Execute("selectEmpID,ManagerfromLibEmpswhere"_&"EmailAddress='"&Request.Form("EmailAddress")&"'and"_&"Password='"&Request.Form("Password")&"'")ifRSFindEmp.EOFthenTheMessage="密碼或email地址不對."elseSession("EmpID")=RSFindEmp("EmpID")Session("Manager")=RSFindEmp("Manager")Response.Redirect"../yk.htm"endif表單域EmailAddress和Password用于Where了句中來獲取一個記錄。如果訪問者輸入了一個無效的用戶名,則記錄集中將不會返回匹配的記錄。我們可以通過查看EOF標記來判斷一個記錄集是否為空。為空,則訪問者將被拒絕進入該系統(tǒng)。不為空,則訪問者的EmpID值和Manager值將從記錄集中返回。寫入Session變量,變量將在整個網(wǎng)站的所有網(wǎng)頁中都是有效的。這些變量的存在與否及其取值將用于確定是否允許進入一個特定的網(wǎng)頁,同時也用于訪問者進行書目的歸還和借閱操作。圖書館菜單頁面圖書館菜單頁面包含指向其他4個頁面的鏈接:管理頁面、搜索頁面、圖書列表頁面和主頁面。還有一個可顯示用戶所借書籍的按紐。如果訪問者是圖書館管理員,則菜單界面如圖所示。如果訪問者不是圖書館管理員,則看到如圖所示的界面。非管理員的訪問者的界面上沒有指向管理員菜單頁面的鏈接。實現(xiàn)辦法:訪問者登錄時在登錄頁面上的創(chuàng)建的會話變量Session用于從數(shù)據(jù)庫中獲取訪問者的有關(guān)信息,表示它是否是管理員。如果值為1,就表明訪問者是一個管理員,則用如下代碼寫入一個指向管理員頁面的鏈接:<%IfSession("Manager")=1then%><AHREF="../html/management_menu.asp">管理員菜單v/A><%endif%>通過按紐B1是否為空來判斷要不要顯示用戶所借圖書,利用一個記錄集來獲取訪問者已經(jīng)借出了的所有圖書的列表。ifNOTisempty(Request.Form("B1"))thensetRSBooks=conn.Execute("selectBookID,TitlefromLibBookswhere"_&"CheckedOutTo="&Session("EmpID"))endif再用循環(huán)語句將所借書以表格形式顯示出來。<tableborder=1width="90%"><%ifNOTisempty(Request.Form("B1"))thenDoUntilRSBooks.EOF%><TR><TDWIDTH=40%height="20"><%Response.WriteRSBooks("Title")%></td></tr><%RSBooks.MoveNextloopendif%></table>循環(huán)將遍歷Rsbooks記錄集中的每個記錄,直到該記錄集結(jié)束:該網(wǎng)站中的所有ASP頁面都會在訪問者訪問之前對其進行登錄檢查。這樣就可以避免訪問者通過輸入某個頁面地址然后在沒有登錄的情況下直接進入該頁面的情況發(fā)生。此外,每個管理頁面都要確認訪問者是管理員。管理菜單頁面管理菜單頁面有一個HTML表單,根據(jù)選擇的按鈕的不同,可以進行5種不同的操作:圖書的歸還、圖書的編輯、圖書的刪除、圖書的添加和類別的添加。不管選擇了哪一個按鈕,該表單都提交人其自身進行處理。要進行圖書的歸還、圖書的編輯、圖書的刪除三種操作,須先進行搜索,找到該書后,由圖書Book.asp返回一個鏈接:<%IfSession("Manager")=1then%><A HREF="../html/management_menu.asp?title=<% response.writeRSBooks("Title")%>&BOOKID=<%response.writeRSBooks("BOOKID")%>">管理員菜單</A><%endif%>而管理者頁面通過下列語句<%=request.querystring("title")%>vinputzztype=hiddenname="BOOKIDl"value="v%=request.querystring("BOOKID")%>>這樣就將所找到的書的書號BookID、書名Title傳遞管理者頁面。再進行所須操作。共有3個不同的銨紐,可以進行3種操作。若單擊“修改”鈕:則重定向到編輯圖書頁面,同時把Bookid傳遞給該頁面。Response.Redirect"./edit_book.asp?BOOKID="&request("BOOKIDl")將其他的情況需要建立到數(shù)據(jù)庫的連接:setconn=server.createobject("adodb.connection")Conn.Open("FILEDSN=c:\ProgramFiles\CommonFiles\ODBC\DataSources\msaccessdatabase.dsn")ifNOTisempty(Request.Form("Delete"))andrequest("BOOKIDl")<>""thenconn.Execute"deletefromLibBookswhereBOOKID="&request("BOOKIDl")endifif(NOTisempty(Request.Form("checkin")))andrequest("BOOKIDl")<>""thenconn.Execute"updateLibBookssetcheckedoutto=0,status='Available'whereBookID="&Request("BOOKIDl")endif頁面中的添加新的種類部分包含一個文本控件和一個選擇控件。其中選擇控件是用所有已經(jīng)存在的類別列表進行填充的,包括特殊類別Toplevel,該類別表明當前類別是處于類別層次結(jié)構(gòu)中的最頂層。代碼如下:先用一個記錄集來填充父類別選擇控件:setRSCategories=conn.Execute("selectCategoryNamefromLibCategoriesorderbyCategoryName")再用下列循環(huán)語句:<%DoUntilRSCategories.EOF%><OPTIONVALUE="<%response.writeRSCategories("CategoryName")%>"><%response.writeRSCategories("CategoryName")%></OPTION><%RSCategories.MoveNextLoop%>遍歷RSCategories記錄集中的每個記錄,并作為一個選項添加到列表中,而記錄集中CategoryName同時作為顯示值和傳遞值:本頁面還包含一個指向添加圖書頁面的鏈接。搜索結(jié)果頁面搜索頁面的代碼獲取與訪問者查找規(guī)則相匹配的圖書,然后將這些圖書顯示給訪問者。搜索頁面上的表單包含一個選擇控件和一個文本控件。選擇控件中的選項是用可搜索的字段填充的:需要用一個記錄集來保存與訪問者的查找規(guī)則相匹配的記錄:setRSBooks=conn.Execute("selectBookID,Author,Title,SubjectfromLibBookswhere"_&Request.Form("SearchField")&"Like'%"&Request.Form("SearchCriteria")&"%'")注意:,符號%表示的是一個廣義搜索。這一點類似于ACCESS中的符號*。然后將所找到的書以表格形式顯示出來。代碼如下:<%DoUntilRSBooks.EOF%><TRVALIGN="top"ALIGN="left">vTDWIDTH=40%height="20">vB>書名:v/B><AHREF="../html/book.asp?BookID=v%Response.WriteRSBooks("BookID")%>"><%Response.WriteRSBooks("Title")%></A></TD><tdwidth=20%height="20">vB>著者:v/B><%Response.WriteRSBooks("Author")%>v/td><tdwidth=30%height="20">vB>主題:</B><%Response.WriteRSBooks("Subject")%></td><%RSBooks.MoveNextLoop%>圖書頁面圖書頁面的代碼顯示圖書的有關(guān)信息,以及管理圖書的出借操作。該頁面通過Querystring傳遞BookIDifisempty(Request.QueryString("BookID"))thenResponse.Redirect"./search.html"endif如果其中不存在,則訪問者將被重定向到搜索頁面:如果同時傳遞表單中包含的變量Action不為空,則表明訪問者正借閱該圖書:ifNotisempty(Request.QueryString("Action"))then在這種情況下,需要將圖書狀態(tài)改為Checkout,同時需要將Checkedoutto字段修改為該訪問者:conn.Execute"updateLibBookssetStatus='CheckedOut',"_&"CheckedOutTo="&Session("EmpID")&"whereBookID="_&Request.QueryString("BookID")Response.Redirect"./library_menu.asp"endif然后將該訪問者重定到圖書館菜單頁面:下一步,利用圖書的狀態(tài)來確定不同的鏈接未借出時鏈接如下:ifRSBooks("status")="Available"thenLinkText="<AHREF=""../html/book.asp?Action=CheckOut&BookID="_&Request.QueryString("BookID")&""”>借這本書</A>"如果圖書已經(jīng)借出,就創(chuàng)建一個不同的消息,并將鏈接設(shè)置為指向Librarymenu頁面:LinkText="<AHREF=""../html/library_menu.asp"":?書已出借,返回主菜單。</A>"最后根據(jù)是否是管理員,顯示管理員菜單鏈接。<%IfSession("Manager")=1then%><AHREF="../html/management_menu.asp?title=<%response.writeRSBooks("Title")%>&BOOKID=<%response.writeRSBooks("BOOKID")%>">管理員菜單</A><%endif%>網(wǎng)上評優(yōu)投票系統(tǒng)3.3.1功能:能實現(xiàn)全校性的評選,快捷、公平,且有效,不允許做票。3.3.2組成構(gòu)造這個系統(tǒng)由3個部分組成——投票頁面vote.htm,處理投票結(jié)果的腳本,顯示投票頁面。3.3.3數(shù)據(jù)表的設(shè)計:3.3.4界面設(shè)計與重點、難點代碼設(shè)計投票頁面該頁面是一個純HTML文件,它讓用戶選擇自己想選舉的候選人,并填寫自己的詳細資料,以確認投票的有效性。頁面顯示如圖所示。表單處理腳本在vote.htm中各項數(shù)據(jù)都填寫完畢后,單擊確定投票按鈕,表單的數(shù)據(jù)就被提交,本次評優(yōu)共有4個候選人,但只能選兩個。故用復選框。投票的有效性通過是否是本校學生,且是否投過票來判斷。ifrequest("passno")<>""thensql="select*fromstudwherepassword="&"'"&request("passno")&"'"&"andyitu=0"setrs=cn.execute(sql)ifrs.eofthen%><h2align=center>v%response.write'你無權(quán)投票"%>v/h2>本設(shè)計允許少選,不允許多選。通過判斷Vote投票界面?zhèn)鬟f過來的復選按紐值的長度看是否多選。vo=request("cand")iflen(vo)>4then%>vh2align=center>v%response.write"多選了,無效"%>v/h2>然后根據(jù)所投的票將對應候選人的投票結(jié)果字段加1,同時將該投票人的已投字段置為1。sqq="updatestudsetyitu=1wherepassword="&"'"&request("passno")&"'"cn.execute(sqq)ifinstr(vo,"1")thencn.execute("updatestudsetresult=result+lwherename=李寧'")endififinstr(vo,"2")thencn.execute("updatestudsetresult=result+1wherename=楊蘭'")endififinstr(vo,"3")thencn.execute("updatestudsetresult=result+1wherename=江道明'")endififinstr(vo,"4")thencn.execute("updatestudsetresult=result+1wherename=段啟文'")endif%>顯示當前投票情況show.asp由于投票處理頁面已經(jīng)完成了絕大部分的工作,所以顯示結(jié)果頁面就很簡單了,其功能是從Stud表文件中讀取候選人所得票數(shù),顯示在頁面上。頁面顯示如圖值得注意的代碼主要有以下幾處:該頁面有自動刷新功能,使在線用戶可以盡快的看到最新的選舉情況。我們這里設(shè)定每隔30秒鐘自動刷新一次。<metahttp-equiv="refresh"content="10;URL=show.asp">顯示投票時,我們采用了while循環(huán),把候選人及其得票數(shù),整齊地顯示在一個表格中,這種技術(shù)在數(shù)據(jù)庫查詢結(jié)果的顯示中也經(jīng)常用到。代碼如下:<%whilenoths.eof%><tr><tdwidth="100%"><center><fontcolor="#8000ff"><big><%=hs("name")&""&hs("result")&"票"%></big></font></center></td></tr><%hs.movenext%><%wend%>3.4達級考試在線查分系統(tǒng)與計數(shù)器的制作3.4.1功能:它提供了在線查看成績。考生可以在網(wǎng)上使用這一系統(tǒng),通過輸入準考證編號來查
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中國電信山東煙臺分公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 2025中國安全生產(chǎn)科學研究院第一批公開招聘補充高頻重點提升(共500題)附帶答案詳解
- 2025中國農(nóng)業(yè)科學院蜜蜂研究所資源昆蟲保護團隊招聘科研助理高頻重點提升(共500題)附帶答案詳解
- 2025東方航空公司江西分公司招聘地面服務部特種車輛司機1名高頻重點提升(共500題)附帶答案詳解
- 2025下半年福建南平浦城縣事業(yè)單位招聘56人歷年高頻重點提升(共500題)附帶答案詳解
- 2025下半年浙江省杭州市部分市屬事業(yè)單位招聘71人歷年高頻重點提升(共500題)附帶答案詳解
- 2025下半年安徽肥西縣部分單位招聘人員擬聘人員歷年高頻重點提升(共500題)附帶答案詳解
- 2025上半年江蘇事業(yè)單位判斷模塊突破歷年高頻重點提升(共500題)附帶答案詳解
- 古馬隆樹脂行業(yè)相關(guān)投資計劃提議
- 音樂節(jié)特邀舞蹈演員聘用協(xié)議
- 《高等教育學》知識點梳理(附答案)
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院醫(yī)療質(zhì)量管理參考模板
- 張大千-ppt資料
- 內(nèi)螺紋銅管成型技術(shù)與工藝(綜述)
- 航道整治課程設(shè)計--
- 2022逆轉(zhuǎn)和消退動脈粥樣硬化斑塊的現(xiàn)實:來自IVUS試驗的證據(jù)(全文)
- 熱力試驗測點安裝及布置規(guī)范
- 群塔作業(yè)方案(圖文并茂,十分詳細)
- 八灘鎮(zhèn)第二中心小學信訪維穩(wěn)工作臺賬
- 國家開放大學電大本科《管理案例分析》期末試題及答案(試卷號:1304)
- 布洛芬工藝規(guī)程
評論
0/150
提交評論