




已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
腳本語(yǔ)言與asp技術(shù)實(shí)訓(xùn)南京xx職業(yè)技術(shù)學(xué)院 實(shí)訓(xùn)/實(shí)習(xí)報(bào)告設(shè)計(jì)題目: 新聞發(fā)布 班級(jí)名稱: 學(xué)生姓名: 指導(dǎo)老師: 評(píng)閱老師: 同組人員: 2009年12月212009年12月254腳本語(yǔ)言與asp技術(shù)課程實(shí)訓(xùn)任務(wù)書(shū)腳本語(yǔ)言與asp程序設(shè)計(jì)是我院計(jì)算機(jī)網(wǎng)絡(luò)專業(yè)集中實(shí)踐性環(huán)節(jié)之一,是學(xué)習(xí)完腳本語(yǔ)言與asp程序設(shè)計(jì)、網(wǎng)頁(yè)制作、網(wǎng)絡(luò)數(shù)據(jù)庫(kù)課程后進(jìn)行的一次全面的綜合練習(xí)。其目的在于加深對(duì)網(wǎng)站開(kāi)發(fā)的理解,掌握使用asp語(yǔ)言進(jìn)行編程和用dreamweaver制作網(wǎng)頁(yè)的基本方法,提高開(kāi)發(fā)網(wǎng)站實(shí)際操作的能力。一、基本要求 要求學(xué)生認(rèn)真對(duì)待本次課程設(shè)計(jì),積極利用機(jī)房、網(wǎng)絡(luò)資源,積極了解網(wǎng)頁(yè)設(shè)計(jì)的前景,學(xué)會(huì)用asp和html進(jìn)行網(wǎng)絡(luò)編程以及dreamweaver中各種菜單的使用,具備一定的網(wǎng)站開(kāi)發(fā)能力。聽(tīng)從指導(dǎo)教師的安排,認(rèn)真完成老師布置的各項(xiàng)任務(wù),并以小組為單位,上交作品,同時(shí)交個(gè)人報(bào)告。二、實(shí)訓(xùn)目的 熟悉網(wǎng)站開(kāi)發(fā)步驟; 掌握動(dòng)態(tài)網(wǎng)頁(yè)編程技術(shù),綜合運(yùn)用所學(xué)動(dòng)態(tài)網(wǎng)頁(yè)知識(shí); 掌握response、request和session等asp內(nèi)置對(duì)象的綜合應(yīng)用。 掌握connection、recordset等ado對(duì)象的綜合應(yīng)用 掌握select、insert、update和delete等sql語(yǔ)句的綜合應(yīng)用。三、任務(wù)和要求1、需求分析階段主要任務(wù)是明確任務(wù),書(shū)寫(xiě)需求分析報(bào)告,即告知你的系統(tǒng)是什么性質(zhì)的系統(tǒng),為誰(shuí)服務(wù)的,使用對(duì)象是誰(shuí),需要具備那些功能模塊,現(xiàn)有的知識(shí)技能能否實(shí)現(xiàn)你的系統(tǒng)。2、設(shè)計(jì)階段包括界面設(shè)計(jì),代碼實(shí)現(xiàn),這一階段偏重于網(wǎng)頁(yè)制作工具和技巧的應(yīng)用,是整個(gè)論壇各個(gè)功能模塊實(shí)現(xiàn)階段。制作過(guò)程參考:1.劃分模塊;2.設(shè)計(jì)各模塊的數(shù)據(jù)庫(kù);3.設(shè)計(jì)界面;4.編寫(xiě)代碼。在代碼編寫(xiě)過(guò)程中肯定會(huì)碰到問(wèn)題,建議花課余時(shí)間把第六章的對(duì)象再好好學(xué)一下,分頁(yè)顯示要自己補(bǔ)充加強(qiáng),再結(jié)合第九、十一、十二、十三章實(shí)例和網(wǎng)上查找資料,完成實(shí)訓(xùn)任務(wù)3、編寫(xiě)實(shí)訓(xùn)總結(jié)報(bào)告,提交任務(wù)要求的作品實(shí)訓(xùn)總結(jié)報(bào)告。最后上交實(shí)訓(xùn)總結(jié)報(bào)告和作品。目 錄腳本語(yǔ)言與asp技術(shù)課程實(shí)訓(xùn)任務(wù)書(shū)21、需求分析階段22、設(shè)計(jì)階段23、編寫(xiě)實(shí)訓(xùn)總結(jié)報(bào)告,提交任務(wù)要求的作品2第一章系統(tǒng)分析與總體設(shè)計(jì)11.1系統(tǒng)功能描述11.2系統(tǒng)功能模塊劃分21.3系統(tǒng)流程分析3第二章系統(tǒng)分析與總體設(shè)計(jì)42.1 創(chuàng)建數(shù)據(jù)庫(kù)42.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)4第三章 目錄結(jié)構(gòu)與通用模塊53.1 目錄結(jié)構(gòu)53.2 通用模塊63.3 登錄程序設(shè)計(jì)103.4 設(shè)計(jì)管理界面11第四章新聞查詢管理164.1 新聞查詢管理16總結(jié)29結(jié)束語(yǔ)29參 考 文 獻(xiàn)29第一章 系統(tǒng)分析與總體設(shè)計(jì)很多網(wǎng)站都提供新聞欄目,例如搜狐、新浪等著名網(wǎng)站的新聞專欄。許多企業(yè)和個(gè)人網(wǎng)站也需要定期發(fā)布一些關(guān)于企業(yè)或網(wǎng)站的新聞。因?yàn)榫W(wǎng)絡(luò)中新聞發(fā)布的頻率非常高,如果使用靜態(tài)網(wǎng)頁(yè)作為新聞頁(yè)面,則維護(hù)工作將非常繁瑣,管理員每天需要制作大量的網(wǎng)頁(yè),從而浪費(fèi)很多時(shí)間和精力。使用新聞發(fā)布及管理系統(tǒng)可以使新聞發(fā)布和管理變得很輕松,管理員只需設(shè)置標(biāo)題、內(nèi)容和圖片等新聞就可以了,系統(tǒng)將自動(dòng)生成對(duì)應(yīng)的網(wǎng)頁(yè)。本文將對(duì)新聞發(fā)布及管理系統(tǒng)進(jìn)行系統(tǒng)分析與總體設(shè)計(jì)。1.1 系統(tǒng)功能描述新聞發(fā)布及管理系統(tǒng)包括新聞發(fā)布管理、圖片處理、新聞查詢和網(wǎng)友評(píng)論等模塊。具體描述如下:1新聞發(fā)布管理:(1)基本新聞信息的錄入,包括新聞標(biāo)題、新聞內(nèi)容和所屬類別等;(2)基本新聞信息的修改;(3)基本新聞信息的刪除;3圖片處理模塊:(1)選擇圖片文件;(2)上傳圖片文件;(3)存儲(chǔ)圖片新聞;(4)修改新聞圖片;(5)刪除新聞圖片;(6)在網(wǎng)頁(yè)中瀏覽新聞圖片。4新聞查詢模塊:(1)按照新聞?lì)悇e分頁(yè)顯示新聞; -(2)按照日期分頁(yè)顯示新聞。5網(wǎng)友留言模塊:(1)網(wǎng)友對(duì)某條新聞發(fā)表評(píng)論;(2)管理員可以刪除新聞評(píng)論。1.2 系統(tǒng)功能模塊劃分從功能描述的內(nèi)容可以看到,本實(shí)例可以實(shí)現(xiàn)4個(gè)完整的功能。我們根據(jù)這些功能,設(shè)計(jì)出系統(tǒng)的功能模塊,如圖1所示。新聞發(fā)布及管理系統(tǒng)新聞發(fā)布及管理圖片處理模塊新聞查詢模塊網(wǎng)友評(píng)論模塊圖1 新聞發(fā)布及管理系統(tǒng)功能模塊示意圖新聞發(fā)布及管理系統(tǒng)的功能模塊之間的關(guān)系如圖2所示。后臺(tái)系統(tǒng) 前臺(tái)系統(tǒng)數(shù)據(jù)庫(kù)基本信息發(fā)布新聞圖片發(fā)布新聞查詢管理發(fā)表網(wǎng)友評(píng)論圖2 新聞發(fā)布及管理系統(tǒng)的功能模塊關(guān)系圖在本系統(tǒng)中,用戶管理模塊的功能比較簡(jiǎn)單。在系統(tǒng)初始化時(shí),有一個(gè)默認(rèn)的“系統(tǒng)管理員”用戶admin,由程序設(shè)計(jì)人員手動(dòng)地添加到數(shù)據(jù)庫(kù)中。普通用戶則只能注冊(cè)和登錄。1.3 系統(tǒng)流程分析為了使讀者進(jìn)一步了解本實(shí)例系統(tǒng)的設(shè)計(jì),本小節(jié)將對(duì)系統(tǒng)進(jìn)行流程分析。多用戶系統(tǒng)的工作流程都是從用戶登錄模塊開(kāi)始,對(duì)用戶的身份進(jìn)行認(rèn)證。身份認(rèn)證可以分為以下兩個(gè)過(guò)程:(1)確認(rèn)用戶是否是有效的系統(tǒng)用戶。(2)確定用戶的類型。第1個(gè)過(guò)程決定用戶能否進(jìn)入系統(tǒng)。第2個(gè)過(guò)程根據(jù)用戶的類型決定用戶的操作權(quán)限。本系統(tǒng)分為前臺(tái)系統(tǒng)和后臺(tái)系統(tǒng)兩個(gè)部分。前臺(tái)系統(tǒng)不需要進(jìn)行身份認(rèn)證,任何人都可以通過(guò)瀏覽器閱讀已經(jīng)發(fā)布的新聞、發(fā)表網(wǎng)友評(píng)論。后臺(tái)系統(tǒng)的流程分析如圖3所示。admin用戶擁有所有的權(quán)限,普通用戶只能查詢新聞和查看新聞。開(kāi)始用戶登錄失敗重試管理所有的信息管理發(fā)布信息,所有新聞信息的管理查詢新聞和查看新聞admin普通用戶圖3 后臺(tái)系統(tǒng)的流程分析command、recordset、field對(duì)象使用。第二章 系統(tǒng)分析與總體設(shè)計(jì)2.1 創(chuàng)建數(shù)據(jù)庫(kù)首先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)news,用來(lái)保存本系統(tǒng)的所有數(shù)據(jù)。創(chuàng)建數(shù)據(jù)庫(kù)的腳本代碼如下:create database news go可以在sql查詢分析器中執(zhí)行該語(yǔ)句,創(chuàng)建數(shù)據(jù)庫(kù)。2.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)定義的數(shù)據(jù)庫(kù)中包含以下4個(gè)表:新聞?lì)悇e表:category、新聞基本信息表:news、網(wǎng)友評(píng)論信息表:discuss和用戶信息表:users。下面分別介紹這些表的結(jié)構(gòu)。1新聞?lì)悇e表category新聞?lì)悇e表category用來(lái)保存新聞?lì)悇e數(shù)據(jù),結(jié)構(gòu)如表1所示。表1表category的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō)明1cateidint新聞?lì)悇e編號(hào)2catenamevarchar (50)新聞?lì)悇e名稱2基本新聞表news基本新聞表news用來(lái)保存網(wǎng)上新聞的基本信息,結(jié)構(gòu)如表2所示。表2表news的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu) 說(shuō)明1 idint新聞編號(hào)2titlevarchar(100)新聞標(biāo)題3contenttext新聞內(nèi)容4posttimevarchar(50)提交時(shí)間5postervarchar(50)提交人6cateidint新聞?lì)悇e編號(hào)7attpicbit是否有圖片標(biāo)記(0沒(méi)有;1有)8readcountint閱讀次數(shù)3網(wǎng)友評(píng)論信息表discuss網(wǎng)友評(píng)論信息表discuss用來(lái)保存網(wǎng)友對(duì)新聞的評(píng)論信息,結(jié)構(gòu)如表3所示。表3表discuss的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō)明1idint評(píng)論編號(hào)2useridvarchar(20)評(píng)論人名稱3posttimesinaildatetime提交時(shí)間4contentvarchar(4000)評(píng)論內(nèi)容5newsldint新聞編號(hào)4用戶信息表users用戶信息表users用來(lái)保存用戶的基本信息,結(jié)構(gòu)如表4所示。表4 表users的結(jié)構(gòu)編號(hào)字段名稱數(shù)據(jù)結(jié)構(gòu)說(shuō)明1useridint用戶id號(hào)。2usernamevarchar(50)用戶名3userpwdvarcahr(50)密碼4enamevarchar(50)用戶姓名5emailvarchar(50)電子郵箱第三章 目錄結(jié)構(gòu)與通用模塊3.1 目錄結(jié)構(gòu)在運(yùn)行實(shí)例時(shí),需要將web目錄復(fù)制到iis/pws的根目錄下,例如目錄下包含下面兩個(gè)子目錄:images用于存儲(chǔ)上傳的新聞圖片;pic用于存儲(chǔ)網(wǎng)頁(yè)中的圖片文件;其他asp文件都保存在web目錄下。3.2 通用模塊本實(shí)例中包含一些通用模塊,這些模塊以文件的形式保存,可以在其他文件中使用#include語(yǔ)句包含這些模塊,使用其中定義的功能。1conndb.aspconndb.asp的功能是實(shí)現(xiàn)到數(shù)據(jù)庫(kù)的連接,因?yàn)樵诤芏嗑W(wǎng)頁(yè)中都有連接數(shù)據(jù)庫(kù)的操作,所以把它保存在文件conndb.asp中,這樣可以避免重復(fù)編程。conndb.asp的代碼如下:在文件中引用此文件作為頭文件就可以訪問(wèn)數(shù)據(jù)庫(kù),代碼如下:2isadmin.asp因?yàn)楸緦?shí)例中有些功能只有admin用戶才有權(quán)限使用,所以在進(jìn)入這些網(wǎng)頁(yè)之前,需要判斷用戶是否是admin。isadmin.asp的功能是判斷當(dāng)前用戶是否是admin,如果不是,則中斷執(zhí)行;如果是,則不執(zhí)行任何操作,直接進(jìn)入包含它的網(wǎng)頁(yè)。isadmin.asp的代碼如下:% if session(username) admin then response.write(不是admin用戶,沒(méi)有此權(quán)限) response.end end if%在文件中引用此文件作為頭文件,代碼如下:3isauthor.asp在修改和刪除新聞時(shí),除了admin用戶擁有所有權(quán)限外,其他用戶只能查詢和查看新聞。所以在修改和刪除新聞時(shí),需要判斷當(dāng)前用戶是否是admin。isauthor.asp可以實(shí)現(xiàn)此功能,代碼如下:% if session(username) admin then newsid = request(id) set rsnews = server.createobject(adodb.recordset) sql = select * from news where id= & trim(newsid) set rsnews=conn.execute(sql) set rs=conn.execute(sql) if rsnews.eof then response.write 指定新聞不存在 response.end else if rsnews(poster) session(username) then response.write 不是admin,無(wú)權(quán)修改! response.end end if end if end if%如果當(dāng)前用戶是admin,則isauthor.asp不做任何操作;否則,程序?qū)⒏鶕?jù)參數(shù)id讀取新聞信息,并將poster字段的值與當(dāng)前用戶名進(jìn)行比較。在兩種情況下,isauthor.asp將阻止程序繼續(xù)執(zhí)行:(1)指定新聞不存在;(2)當(dāng)前用戶不是admin。使用response.end可以結(jié)束網(wǎng)頁(yè)的輸出。在文件中引用此文件作為頭文件,代碼如下:4template.asp在添加和修改新聞內(nèi)容時(shí),需要對(duì)字體、字號(hào)、顏色和排列位置等屬性進(jìn)行設(shè)置。template.asp可以實(shí)現(xiàn)這些功能。template.asp的設(shè)計(jì)界面如圖5所示。圖5 template.asp的設(shè)計(jì)界面在使用template.asp時(shí),設(shè)置指定的選項(xiàng),將會(huì)在新聞內(nèi)容中生成相應(yīng)的html代碼。相關(guān)代碼如下:字體 select onchange=var c=this.optionsthis.selectedindex.value;if(selection.createrange().text!=)selection.createrange().text=+selection.createrange().text+elsemyform.txtcontent.value = +myform.txtcontent.value+ name=font style=font-size: 9pt宋體楷體新宋體黑體隸書(shū)andale monoarialarial blackbook antiquacentury gothiccomic sans mscourier newgeorgiaimpacttahomatimes new romantrebuchet msscript mt boldstencilverdanalucida console在下拉菜單中,定義了系統(tǒng)支持的字體名稱,下拉菜單的值與字體名稱相同。當(dāng)下拉菜單的選擇發(fā)生變化時(shí),將觸發(fā)onchange事件,程序中直接定義了對(duì)應(yīng)的javascript代碼。this表示字體下拉菜單,thisselectedlndex表示當(dāng)前選擇的菜單項(xiàng)目索引,this.optionsthis.selectedlndex.value則表示選擇下拉菜單的值,程序?qū)⑵浔4孀兞縞中。selection.createrangeo.text表示當(dāng)前選擇字符的內(nèi)容,如果它不為空,則將其替換為如下代碼:selection.createrange().text=+selection.createrange().text+也就是在它的兩側(cè)添加字體標(biāo)識(shí)和。如果沒(méi)有選擇字符,則在輸入新聞內(nèi)容的文本域中直接加入字體標(biāo)識(shí),用戶可以在和之問(wèn)添加相應(yīng)的文字,代碼如下:myform.txtcontent.value=+myform.txtcontent.value+在添加和修改新聞內(nèi)容的網(wǎng)頁(yè)中,必須將表單定義為myform,輸入新聞內(nèi)容的滾動(dòng)文本框定義為txtcontent,否則此功能將無(wú)法實(shí)現(xiàn)。3.3 登錄程序設(shè)計(jì)在對(duì)系統(tǒng)進(jìn)行管理之前,需要通過(guò)系統(tǒng)的身份認(rèn)證。本站中使用chkpwd.asp進(jìn)行身份驗(yàn)證。對(duì)于需要登陸才能察看的網(wǎng)頁(yè)可以在網(wǎng)頁(yè)的最前端加上如下代碼:這樣為登陸的用戶將看到如下界面:3.4 設(shè)計(jì)管理界面 管理界面的功能是對(duì)新聞?lì)悇e和新聞提供管理界面,只有有權(quán)限的用戶才能進(jìn)入管理界面。本節(jié)將介紹管理界面index.asp的實(shí)現(xiàn)方法。錄入新聞?lì)悇e和新聞內(nèi)容后,index.asp的界面如圖5-7所示。 下面介紹index.asp的主要代碼。(1)包含文件 在index.asp的開(kāi)始部分添加下面的代碼,這樣在打開(kāi)網(wǎng)頁(yè)時(shí),程序會(huì)自動(dòng)連接到數(shù)據(jù)庫(kù),并進(jìn)行身份驗(yàn)證。 (2)顯示新聞?lì)悇e鏈接index.asp將新聞按照分類顯示,每個(gè)新聞?lì)悇e只顯示最新的20條新聞。顯示新聞?lì)悇e的代碼如下:| a href=index.asp?flag= 在調(diào)用index.asp時(shí),參數(shù)flag表示新聞?lì)悇e。如果flag=0,則顯示全部新聞,否則顯示指定類別的新聞。(3)顯示管理鏈接在index.asp中,將根據(jù)用戶類型顯示管理鏈接,包括“用戶管理”和“退出登錄”,只有admin用戶才能看到“類別管理”和“用戶管理”鏈接。顯示管理鏈接的代碼如下:% if session(username) = admin then response.write 類別管理 response.write 用戶管理 sql_where = else sql_where = poster= & session(username) & end if%session(”username”)中保存著當(dāng)前登錄用戶的用戶名。當(dāng)session(”username”)=”admin”時(shí),才能顯示“類別管理”和“用戶管理”超級(jí)鏈接。從程序中可以看到,各項(xiàng)管理功能對(duì)應(yīng)的頁(yè)面如下:(1)更改密碼pwdchange.asp;(2)類別管理cateadmin.asp;(3)用戶管理userlist.asp;(4)退出登錄logout.asp。變量sql_where用來(lái)記錄查詢條件。如果當(dāng)前用戶是admin,則sql_where=“”,即顯示所有新聞;否則設(shè)置查詢條件為“poster=“”&session(“username”)&“”,即只能管理自己創(chuàng)建的新聞。(4)分頁(yè)顯示新聞信息下面將根據(jù)指定的新聞?lì)悇e和頁(yè)碼顯示新聞標(biāo)題列表,代碼如下:% if iflag = then if sql_where = then sql = select * from news order by posttime desc else sql = select * from news where & sql_where & order by posttime desc end if else if sql_where = then sql = select * from news where cateid= & iflag & order by posttime desc else sql = select * from news where cateid= & iflag & and & sql_where & order by posttime desc end if end if rs.open sql,conn,1,1 if rs.eof then response.write 目前還沒(méi)有記錄。 elsers.pagesize = 20 page = clng(request(page) if page rs.pagecount then page = rs.pagecountrs.absolutepage = page for i = 1 to rs.pagesize if rs.eof then exit for% a href=newsview.asp?id= onclick=return newwin(this.href) a href=newsedit.asp?id= onclick=return newwin(this.href)修 改 input type=checkbox name=news id= style=font-size: 9pt value=on 1 then response.write 分頁(yè): for i = 1 to rs.pagecount response.write response.write & i & next response.write end if end if%這部分代碼的關(guān)鍵部分是根據(jù)新聞?lì)悇e和用戶類型生成select語(yǔ)句,查詢指定的新聞?dòng)涗?。在調(diào)試程序時(shí),可以使用下面的語(yǔ)句顯示select語(yǔ)句的內(nèi)容。response.write sql29第四章 新聞查詢管理4.1 新聞查詢管理如果系統(tǒng)中新聞數(shù)量比較多,那么只按照分類察看新聞顯然是不夠的。為了方便網(wǎng)友使用,本站中設(shè)計(jì)了新聞管理功能。新聞查詢管理頁(yè)面的腳本是search.asp,運(yùn)行界面如圖所示可以看到,新聞查詢可以分為下面幾種情況: (1)按發(fā)布日期查詢。 (2)查詢新聞標(biāo)題和新聞內(nèi)容中包括的文字。在search.asp中,用于編輯查詢條件的表單為form1,它的定義代碼如下:當(dāng)表單數(shù)據(jù)提交時(shí),將執(zhí)行searchresult.asp。為了驗(yàn)證用戶錄入數(shù)據(jù)的有效性,在search.asp中定義了一些函數(shù),下面介紹這些函內(nèi)容。1isempty()函數(shù)isempty()函數(shù)的功能是判斷字符串是否為空,代碼如下:function isempty (str) if (str=null)|(str.length=0) return true;else return(false);參數(shù)str表示要判斷的字符串,如果它為空或長(zhǎng)度為0則返回true,否則返回false。2isdigital()函數(shù)isdigital()函數(shù)的功能是判斷字符串是否是數(shù)字類型,代碼如下:function isdigit(s)var patrn=/0-91,20$/;if (!patrn.exec(s) return falsereturn true參數(shù)s表示要判斷的字符串。變量patrn是一個(gè)正則表達(dá)式,正則表達(dá)式是由普通字符以及特殊字符組成的文字模式。該模式描述在查找文字主體時(shí)待匹配的一個(gè)或多個(gè)字符串。正則表達(dá)式作為一個(gè)模板,將某個(gè)字符模式與所搜索的字符串進(jìn)行匹配。正則表達(dá)式中的execute方法對(duì)指定的字符串執(zhí)行正則表達(dá)式搜索。/表示正則表達(dá)式的開(kāi)始,$/表示正則表達(dá)式的結(jié)束,09表示以09的數(shù)字為開(kāi)始和結(jié)束,1,20表示長(zhǎng)度為120。3isint()函數(shù)isint()函數(shù)的功能是判斷指定的字符串是否是整型數(shù)據(jù),代碼如下:function isint (thestr) var flag = true;if (isempty(thestr) flag=false; else for (var i=0; ithestr.length; i+) if (isdigit(thestr.substring(i,i+1) = false) flag = false; break;return(flag);參數(shù)thestr表示要判斷的字符串。如果thestr為空,則返回false;否則對(duì)thestr中的每個(gè)字符進(jìn)行判斷,如果有一個(gè)字符不是數(shù)字類型(使用isdigital函數(shù)判斷)則返回false。如果上述情況都沒(méi)有返回false,則返回true。4.isbetween(、)函數(shù)isbetween()函數(shù)的功能是判斷指定數(shù)據(jù)是否在兩個(gè)數(shù)字之間,代碼如下:function isbetween (val, lo, hi) if (val hi) return(false); else return(true); 參數(shù)val表示要比較的數(shù)值,參數(shù)lo表示比較范圍的下限,參數(shù)hi表示比較范圍的上限。程序?qū)al與lo、hi進(jìn)行比較,如果val的值不在它們之間,則返回false,否則返回true。5isidate()函數(shù)isdate()函數(shù)的功能是判斷指定數(shù)據(jù)是否是日期型數(shù)據(jù),代碼如下:function isdate (thestr) var the1st = thestr.indexof(-);var the2nd = thestr.lastindexof(-);if (the1st = the2nd) return(false); else var y = thestr.substring(0,the1st);var m = thestr.substring(the1st+1,the2nd);var d = thestr.substring(the2nd+1,thestr.length);var maxdays = 31;if (isint(m)=false | isint(d)=false | isint(y)=false) return(false);else if (y.length 0) maxdays = 28;else if (y % 100 = 0 & y % 400 0) maxdays = 28;else maxdays = 29;if (isbetween(d, 1, maxdays) = false) return(false); else return(true); 可以看到前面定義的函數(shù)都是為了實(shí)現(xiàn)isdate()函數(shù)的功能。在search.asp中,定義“開(kāi)始”按鈕的代碼如下:當(dāng)用戶單擊“開(kāi)始”按鈕時(shí),將觸發(fā)onclick事件,并執(zhí)行button2_onclick()函數(shù),代碼如下:function button2_onclick() / 字段不能都為空,如果發(fā)布日期為空,則查詢條件不能空 if (form1.sdate.value= & form1.edate.value= & form1.searchcontent.value = ) alert(查詢條件不能都為空!); form1.searchcontent.focus(); return (false); / 檢查日期格式是否正確 if (form1.sdate.value.length0) if(!isdate(form1.sdate.value) alert(開(kāi)始日期格式不正確,請(qǐng)重新輸入!);form1.sdate.focus();return (false); if (form1.edate.value.length0) if(!isdate(form1.edate.value) alert(截至日期格式不正確,請(qǐng)重新輸入!);form1.edate.focus();return (false);這段程序?qū)⑴袛嘤脩糨斎氲牟樵儣l件是否為空,并使用自定義函數(shù)isdate()驗(yàn)證日期是否有效。下面介紹searchresult.asp的實(shí)現(xiàn)方法。它的主要功能是根據(jù)用戶提交的查詢條件生成select語(yǔ)句,并以表格的形式顯示查詢結(jié)果。在searchresuit.asp中,定義了一個(gè)函數(shù)getusername(),它的功能是根據(jù)用戶名返回用戶的真實(shí)姓名,代碼如下:這里使用getusername()函數(shù)的作用是取得新聞提交人的姓名,并在查詢結(jié)果中顯示。如果將本系統(tǒng)用于企業(yè)內(nèi)部的新聞發(fā)布平臺(tái),則通常需要顯示提交人姓名。如果不需要此功能,也可以將相關(guān)代碼去掉。searchresult.asp的最重要部分就是生成查詢新聞的select語(yǔ)句,代碼如下:0 and len(edate)0 thenstrsqlptime = where posttime= & sdate & strsqlptime = strsqlptime & and posttime0 and len(edate)=0 thenstrsqlptime = where posttime= & sdate & elseif len(sdate)=0 and len(edate)0 thenstrsqlptime = where posttime= & edate & end if 取得查詢模式(精確查詢或模糊查詢),參見(jiàn)search.asp中的定義 searchcontent1 = request(searchcontent) fanwei = request(fanwei) if fanwei =all then 精確查詢searchcontent = searchcontent1 else 模糊查詢searchcontent = % & searchcontent1 & % end if 取得查詢范圍值 searchfanwei = request(d1) if searchfanwei=title then 只在新聞標(biāo)題中查詢r(jià)esponse.write 按 信息標(biāo)題 查詢的結(jié)果strsql = title like & searchcontent & order by posttime desc elseif searchfanwe=content then 只在新聞內(nèi)容中查詢r(jià)esponse.write 按 信息內(nèi)容 查詢的結(jié)果strsql = content like & searchcontent1 & order by posttime desc end if 合并查詢條件 if len(strsqlptime)=0 then strsql = where & strsql elsestrsql = strsqlptime & and & strsql end if 記錄查找到的新聞序號(hào) dim ncnt ncnt = 0 輸出表格 response.write response.write response.write 序號(hào) response.write 信息標(biāo)題 response.write 所屬類別 response.write 內(nèi)容長(zhǎng)度 response.write 提交人 response.write 提交時(shí)間 response.write dim rssearch,rscate set rssearch= server.createobject(adodb.recordset) set rscate = server.createobject(adodb.recordset) 生成查詢語(yǔ)句 strsql = select * from news & strsql response.write sql :& strsql rssearch.open strsql, conn, 1, 3以上代碼的工作過(guò)程如下:根據(jù)參數(shù)sdate和edate生成與日期相關(guān)的查詢條件;根據(jù)查詢模式(精確查詢或模糊查詢)生成相關(guān)的查詢條件。如果是精確查詢,則使用“=”;如果是模糊查詢,則使用like和通配符;根據(jù)查詢范圍生成相關(guān)的查詢
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)大巴專用椅市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)復(fù)嫩修顏乳市場(chǎng)調(diào)查研究報(bào)告
- 2025年增強(qiáng)現(xiàn)實(shí)(AR)在智能制造中的應(yīng)用潛力與挑戰(zhàn)分析報(bào)告
- 2025年中國(guó)壓力噴霧造料干燥機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 小區(qū)弱電外包維護(hù)合同協(xié)議
- 污水運(yùn)行合同協(xié)議
- 智能交通系統(tǒng)在2025年交通運(yùn)輸與物流行業(yè)中的應(yīng)用前景分析報(bào)告
- 地塊協(xié)議書(shū)格式
- 幼兒園大班班級(jí)上學(xué)期工作計(jì)劃
- 腸內(nèi)營(yíng)養(yǎng)不耐受的護(hù)理
- 成人術(shù)中非計(jì)劃低體溫預(yù)防與護(hù)理
- 栽樹(shù)勞務(wù)合同協(xié)議
- 2025年不動(dòng)產(chǎn)登記代理人《不動(dòng)產(chǎn)登記代理實(shí)務(wù)》考前必刷題庫(kù)(含真題、重點(diǎn)440題)含答案解析
- 酒館加盟代理協(xié)議書(shū)
- 加油站站長(zhǎng)試題及答案
- 環(huán)境突發(fā)事件應(yīng)急預(yù)案演練記錄
- 外研版(三起)(2024)三年級(jí)下冊(cè)英語(yǔ)Unit 3 單元測(cè)試卷(含答案)
- 人教版中職數(shù)學(xué)拓展模塊一:6.2復(fù)數(shù)的運(yùn)算課件(共24張課件)
- 2024年同等學(xué)力申碩《英語(yǔ)》試題真題及答案
- 公共資源交易知識(shí)培訓(xùn)
- 《危機(jī)管理案例》課件
評(píng)論
0/150
提交評(píng)論