【文章內(nèi)容簡(jiǎn)介】
rpassword。Database news ConnStr % 在文件中引用此文件作為頭文件就可以訪問(wèn)數(shù)據(jù)庫(kù),代碼如下: !include File 2. 因?yàn)楸緦?shí)例中有些功能只有 Admin 用戶才有權(quán)限使用,所以在進(jìn)入這些網(wǎng)頁(yè)之前,需要判斷用戶是否是 Admin。 的功能是判斷當(dāng)前用戶是否是Admin,如果不是,則中斷執(zhí)行;如果是,則不執(zhí)行任何操作,直接進(jìn)入包含它的網(wǎng)頁(yè)。 的代碼如下: % If Session UserName Admin Then 不是 Admin 用戶,沒(méi)有此權(quán)限 End If % 在文件中引用此文件作為頭文件,代碼如下 : !include File 3. 在修改和刪除新聞時(shí),除了 Admin 用戶擁有所有權(quán)限外,其他用戶只能修改自己創(chuàng)建的新聞。所以在修改和刪除新聞時(shí),需要判斷當(dāng)前用戶是否是 Admin或指定新聞的作者。 可以實(shí)現(xiàn)此功能,代碼如下: % If Session UserName Admin Then NewsId Request Id 39。根據(jù)新聞編號(hào)讀取新聞信息 set rsNews sql SELECT * FROM News WHERE Id amp。 Trim NewsId set rsNews sql Set Rs sql If Then 指定新聞不存在 Else 39。判斷用戶權(quán)限,是否可以維護(hù)新聞,管理員可以編輯所有新聞,編輯者只能修改自己的新聞 If rsNews Poster Session UserName Then 不是 Admin 或新聞的作者,無(wú)權(quán)修改! End If End If End If % 如果當(dāng)前用戶是 Admin,則 不做任何操作;否則,程序?qū)⒏鶕?jù)參數(shù) Id 讀取新聞信息,并將 Poster 字段的值與當(dāng)前用戶名進(jìn)行比較。在兩種情況下, 將阻止程序繼續(xù)執(zhí)行: 1 指定新聞不存在; 2 當(dāng)前用戶不是指定新聞的作者。 使用 可以結(jié)束網(wǎng)頁(yè)的輸出。 在文件中引用此文件作為頭文件,代碼如下: !include File 4. 在添加和修改新聞內(nèi)容時(shí),需要對(duì)字體、字號(hào)、顏色和排列位置等屬性進(jìn)行設(shè)置。 可以實(shí)現(xiàn)這些功能。 的設(shè)計(jì)界面如圖 5 所示。 圖 5 的設(shè)計(jì)界面 在使用 時(shí),設(shè)置指定的選項(xiàng),將會(huì)在新聞內(nèi)容中生成相應(yīng)的HTML 代碼。例如,選中正文 abc,然后選擇“楷體”、“ 1 號(hào)字”,將生成如下代碼: font[space]face 楷體 _GB2312 font[space]size 1 abc [space]是自定義的符號(hào),因?yàn)榭崭裨谵D(zhuǎn)換成 HTML 格式時(shí),將被替換為“ amp。nbsp;”,所以這里使用 [space]表示空格。在顯示新 聞內(nèi)容時(shí),程序?qū)?huì)自動(dòng)將 [space]轉(zhuǎn)換為空格。 因?yàn)? 的代碼較多,這里僅以字體控制的代碼為例說(shuō)明。相關(guān)代碼如下: 字體 SELECT onChange var c [].value。 if .text! 39。39。 .text 39。 font[space]face 39。+c+39。 39。+ .text+39。 39。 else mye 39。 font[space]face 39。+c+39。 39。+mye+39。 39。 name font style 39。FONTSIZE: 9pt39。 OPTION selected value 宋體 宋體 OPTION value 楷體 _GB2312 楷體 OPTION value 新宋體 新宋體 OPTION value 黑體 黑體 OPTION value 隸書(shū) 隸書(shū) OPTION value Andale Mono Andale Mono OPTION value Arial Arial OPTION value Arial Black Arial Black OPTION value Book Antiqua Book Antiqua OPTION value Century Gothic Century Gothic OPTION value Comic Sans MS Comic Sans MS OPTION value Courier New Courier New OPTION value Geia Geia OPTION value Impact Impact OPTION value Tahoma Tahoma OPTION value Times New Roman Times New Roman OPTION value Trebuchet MS Trebuchet MS OPTION value Script MT Bold Script MT Bold OPTION value Stencil Stencil OPTION value Verdana Verdana OPTION value Lucida Console Lucida Console 在下拉菜單中,定義了系統(tǒng)支持的字體名稱(chēng),下拉菜單的值與字體名稱(chēng)相同。 當(dāng)下拉菜單的選擇發(fā)生變化時(shí),將觸發(fā) onChange 事件,程序中直接定義了對(duì)應(yīng)的 JavaScript 代碼。 This 表示字體下拉菜單, this. selectedlndex 表示當(dāng)前選擇的菜單項(xiàng)目索引, [].value 則表 示選擇下拉菜單的值,程序?qū)⑵浔4孀兞?C 中。 表示當(dāng)前選擇字符的內(nèi)容,如果它不為空,則將其替換為如下代碼: .text 39。 font[space]face 39。+c+39。 39。+ .text+39。 39。 也就是在它的兩側(cè)添加字體標(biāo)識(shí) 和 。 如果沒(méi)有選擇字符,則在輸入新聞內(nèi)容的文本域中直接加入字體標(biāo)識(shí),用戶可以在 和 / font 之問(wèn)添加相應(yīng)的文字,代碼如下: mye 39。 font[space]face 39。+c+39。 39。+mye+39。 在添加和修改新聞內(nèi)容的網(wǎng)頁(yè)中,必須將表單定義為 myform,輸入新聞內(nèi)容的滾動(dòng)文本框定義為 txtcontent,否則此功能將無(wú)法實(shí)現(xiàn)。 系統(tǒng)主界面與登錄程序設(shè)計(jì) 第一節(jié) 設(shè)計(jì)主界面 本主界面為 ,它的功能是顯示新聞?lì)悇e和每個(gè)類(lèi)別中的 10 條新聞,并提供進(jìn)入管理界面 的鏈接。 錄入新聞?lì)悇e和新聞內(nèi)容后, 的界面如圖 56 所示。 圖 56 的界面 下面介紹 的主要代碼。 1.顯示新聞?lì)悇e鏈接 將新聞按照分類(lèi)顯示,每個(gè)新聞?lì)悇e只顯示最新的 10 條新聞。如果新聞?lì)悇e 較多,則網(wǎng)頁(yè)會(huì)被拉長(zhǎng),給用戶閱讀帶來(lái)不便。為了解決這個(gè)問(wèn)題,本實(shí)例使用書(shū)簽來(lái)定義新 聞?lì)悇e的位置,書(shū)簽格式為 a 。例如,類(lèi)別編號(hào)為 1 的新聞?lì)悇e的書(shū)簽名稱(chēng)為 al。下面的代碼將在網(wǎng)頁(yè)中生成所有新聞?lì)悇e的鏈接,每個(gè)鏈接都指相應(yīng)新聞?lì)悇e的書(shū)簽。這樣,用戶就可以通過(guò)單擊鏈接直達(dá)新聞?lì)悇e了。 % 39。 顯示所有新聞?lì)悇e供點(diǎn)擊,點(diǎn)擊不同類(lèi)別顯示該類(lèi)別的新聞 39。按順序讀取所有新聞?lì)悇e,保存在記錄集 rsCate 中 sql SELECT * FROM Category ORDER BY CateId Set rsCate sql 39。顯示所有新聞?lì)悇e鏈接 Do While Not stitle rsCate CateName cid rsCate CateId 39。每個(gè)新聞?lì)悇e標(biāo)題被定義為一個(gè)書(shū)簽,名為 a 類(lèi)別編號(hào) % a href a % cid% font style 39。TEXTDECORATION: none。color:black39。 % stitle% | % Loop % 如果網(wǎng)頁(yè)中顯示的內(nèi)容較多,通常需要通過(guò)定義書(shū)簽的方法使用戶快速到達(dá)指定的位置。書(shū)簽是網(wǎng)頁(yè)中被標(biāo)記的位置或被標(biāo)記的選中文本。在FrontPage 中選擇“插入” /“書(shū)簽”菜單項(xiàng),可以在指定位置插入書(shū)簽。在本例中,因?yàn)闀?shū)簽位置是動(dòng)態(tài)變化的,所以需要使用代碼定義,方法如 下: a name 書(shū)簽名 2.“新聞管理”鏈接 系統(tǒng)管理員 Admin 或其他用戶可以通過(guò)“新聞管理”鏈接進(jìn)入新聞管理頁(yè)面 a href font color red style 39。TEXTDECORATION: none39。 新聞管理 3.顯示各新聞?lì)悇e中的最新新聞 的主要內(nèi)容是顯示新聞?lì)悇e中的最新 10 條新聞,并將 3天內(nèi)的新聞使用 new 圖片標(biāo)記。當(dāng)然,如果新聞的內(nèi)容經(jīng)常更新,則可以將 3天改為 1 天。 這 部分代碼如下 : % 39。 顯示所有新聞?lì)悇e供點(diǎn)擊,點(diǎn)擊不同類(lèi)別顯示該類(lèi)別的新聞 39。按順序讀取所有新聞?lì)悇e,保存在記錄集 rsCate 中 sql SELECT * FROM Category ORDER BY CateId Set rsCate sql 39。顯示所有新聞?lì)悇e鏈接 Do While Not stitle rsCate CateName cid rsCate CateId 39。每個(gè)新聞?lì)悇e標(biāo)題被定義為一個(gè)書(shū)簽,名為 a 類(lèi)別編號(hào) % a href a % cid% font style 39。TEXTDECORATION: none。color:black39。 % stitle% | % Loop % a href 39。39。 font color red 新聞查詢(xún) | a href font color red style 39。TEXTDECORATION: none39。 新聞管理 table align center width 100% cellspacing 0 cellpadding 0 border 0 td width * valign TOP % 39。將指針移至開(kāi)始位置,分別顯示每個(gè)分類(lèi)中的新聞 If False Then End If 39。依次顯示每個(gè)新聞?lì)?別中最新的 10 條新聞 DO WHILE Not stitle rsCate CateName cid rsCate CateId 39。變量 t 用來(lái)記錄 t 0 39。生成表格 table width 39。100%39。 cellspacing 1 cellpadding 2 39。顯示新聞?lì)悇e,并設(shè)置書(shū)簽 td bgcolor ceceff a name aamp。cidamp。 39。顯示新聞?lì)悇e標(biāo)題 stitle + 39。生成另一個(gè)表格,用于顯示新聞標(biāo)題 table width 39。100%39。 border 0 cellspacing 0 cellpadding 0 39。按提交時(shí)間的降序顯示新聞標(biāo)題 sql SELECT * FROM News WHERE CateId amp。 cid amp。 ORDER BY Posttime DESC sql, conn, 1, 1 DO WHILE Not 39。計(jì)數(shù) t t + 1 39。只顯示 10 條新聞 If t 11 Then Dim ndate ndate DateAdd d,3,date 39。顯示新聞標(biāo)題及鏈接,查看新聞的腳本文件為 td width 39。50%39。 a onClick 39。return newwin 。39。 href 39。?id + cstr rs id + 39。 + rs Title + 39。如果新聞中有圖片,則在標(biāo)題中顯示(附圖) If rs Attpic Then 附圖 End If 39。3 天內(nèi)新聞標(biāo)記 new 圖片 If datediff d, rs Posttim