【正文】
確認(rèn)過程,確認(rèn)密碼是否與原服務(wù)器 上的一致,只有一致的時候才能登陸成功。否則失敗。當(dāng)修改信息的時候也會有這樣的確認(rèn)過程,確保信息的正確性有效性。這里是通過連接 access數(shù)據(jù)庫,用戶的所有信息都存放在數(shù)據(jù)庫的用戶表里面,更新的信息也通過點(diǎn)擊實(shí)現(xiàn)與數(shù)據(jù)庫的交互,直接修改數(shù)據(jù)庫里面相關(guān)表的內(nèi)容。這里的管理員跟普通用戶的實(shí)現(xiàn)原理基本上是一樣的。都是通過連接數(shù)據(jù)庫進(jìn)行修改。 數(shù)據(jù)庫占了很重要的地位。大部分關(guān)鍵內(nèi)容都保存在數(shù)據(jù)庫里面。方便修改和維護(hù)。 圖 用戶管理功能模塊 系統(tǒng)流程分析 本小節(jié)將對系統(tǒng)進(jìn)行 流程分析。多用戶系統(tǒng)的工作流程都是從用戶登錄模塊開始,對用戶的身份進(jìn)行認(rèn)證。身份認(rèn)證可以分為以下兩個過程: ( 1)確認(rèn)用戶是否是有效的系統(tǒng)用戶。 ( 2)確定用戶的類型。 第 1 個過程決定用戶能否進(jìn)入系統(tǒng)。第 2 個過程根據(jù)用戶的類型決定用戶的操作權(quán)限,從而決定用戶的工作界面。 本系統(tǒng)分為前臺系統(tǒng)和后臺系統(tǒng)兩個部分。前臺系統(tǒng)不需要進(jìn)行身份認(rèn)證,任何人都可以通過瀏覽器閱讀已經(jīng)發(fā)布的新聞、發(fā)表網(wǎng)友評論。 后臺系統(tǒng)的流程分析如圖 所示。 Admin 用戶擁有所有的權(quán)限,普通用戶只能對自己發(fā)布的新聞進(jìn)行管理,包括修改新聞內(nèi) 容、刪除新聞和刪除網(wǎng)友評論。 圖 后臺流程 3 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計與實(shí)現(xiàn) 數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)設(shè)計的優(yōu)劣將直接對應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存取效率,保證數(shù)據(jù)完整性和一致性,從而有利于程序的實(shí)現(xiàn)。 設(shè)計數(shù)據(jù)庫系統(tǒng)時應(yīng)該首先充分了解系統(tǒng)需求的各個方面的需求,包括現(xiàn)有的和將來可能增加的需求。 數(shù)據(jù)庫需求分析 需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢上,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。通過 收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)詞典,為后面的具體設(shè)計打下基礎(chǔ)。 在仔細(xì)分析和調(diào)查系統(tǒng)的基礎(chǔ)上,針對新聞管理發(fā)布系統(tǒng)的需求,通過對管理新聞發(fā)布過程的內(nèi)容和數(shù)據(jù)分析,設(shè)計如下所示的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu): 新聞信息:包括的數(shù)據(jù)項有新聞編號、新聞標(biāo)題、新聞內(nèi)容、新聞發(fā)布者的編號、新聞發(fā)布時間、新聞類別編號、是否有圖片。 新聞評論信息:包括的數(shù)據(jù)項有新聞評論編號、評論者名稱、評論時間、新聞評論內(nèi)容、新聞編號。 新聞類別信息:包括的數(shù)據(jù)項有新聞類別編號、新聞類別。 用戶信息:包括的數(shù)據(jù)項有用戶 編號、用戶名、用戶密碼、用戶的真實(shí)姓名、用戶電子信箱地址、用戶權(quán)限標(biāo)志。 數(shù)據(jù)庫創(chuàng)建 新聞管理發(fā)布系統(tǒng)的數(shù)據(jù)庫名字為 ,如圖 所示,位于站點(diǎn)的data 目錄下,其中各個表結(jié)構(gòu)設(shè)計如下所示。 圖 數(shù)據(jù)庫 其中,新聞信息表如表 所示 ,表名: news 表 news 表 列名 數(shù)據(jù)類型 可否為空 說明 ID [整型 ] NOT NULL 新聞編號 title [文本 ] NOT NULL 新聞標(biāo)題 content [備注 ] NOT NULL 新聞內(nèi)容 posterid [整 型 ] NOT NULL 發(fā)布者編號 postertime [日期時間 ] NOT NULL 發(fā)布時間 lbid [整型 ] NOT NULL 新聞類別編號 attpic [是否 ] NULL 是否有圖片 評論信息表如表 所示 ,表名: lun 表 lun 表 列名 數(shù)據(jù)類型 可否為空 說明 ID [整型 ] NOT NULL 評論編號(主鍵) poster [文本 ] NULL 評論者名稱 time [ 日期時間 ] NULL 評論時間 content [備注 ] NULL 評論內(nèi)容 newsid [整型 ] NULL 評論新聞 id 文件信息表如表 所示,表名: XWLB 表 XWLB 表 列名 數(shù)據(jù)類型 可否為空 說明 ID [整型 ] NOT NULL 類別編號 type [文本 ] NOT NULL 類別名稱 用戶表如表 所示,表名: users 表 users 表 列名 數(shù)據(jù)類型 可否為空 說明 ID [整型 ] NOT NULL 用戶編號 username [文本 ] NULL 用戶名 userpwd [文本 ] NULL 密碼 realname [文本 ] NULL 用戶 姓名 [文本 ] NULL 用戶信箱 flag [整型 ] NOT NULL 權(quán)限 4 目錄與通用模塊設(shè)計 目錄結(jié)構(gòu) 在運(yùn)行實(shí)例時,需要將 復(fù)制到源程序根目錄下, 如: 目錄下包含下面三個子目錄: images 用于存儲上傳的新聞圖片。 pic 用于存儲網(wǎng)頁中的圖片文件。 data 存放數(shù)據(jù)庫文件。 和其他 ASP 文件都保存在此目錄下。 通用模塊 本系統(tǒng)中包含一些通用模塊,這些模塊以文件的形式保存,可以在其他文件中使用 include 語句包含這些模塊,使用其中定義的功能。 連 接模塊 的功能是實(shí)現(xiàn)到數(shù)據(jù)庫的連接,因為在很多網(wǎng)頁中都有連接數(shù)據(jù)庫的操作,所以把它保存在文件 中,這樣可以避免重復(fù)編程。 的代碼如下: Dim conn DB ./data/ Set conn Provider Micro。Data Source amp。 DB If Err Then Set conn Nothing 數(shù)據(jù)庫連接出錯,請檢查連接字串。 End If Sub EndConnection Set conn Nothing End Sub 塊 因為本系統(tǒng)中有些功能只有 Admin 用戶才有權(quán)限使用,所以在進(jìn)入這些網(wǎng)頁之前,需要判斷用戶是否是 Admin。 的功能是判斷當(dāng)前用戶是否是Admin,如果不是,則中斷執(zhí)行;如果是,則不執(zhí)行任何操作,直接進(jìn)入包含它的網(wǎng)頁。 的代碼如下: % If Session UserName Admin Then 不是 Admin 用戶,沒有此權(quán)限 End If % 在文件中引用此文件作為頭文件,代碼如下 : !include File 聞權(quán)限模塊 在修改和刪除新聞時, 除了 Admin 用戶擁有所有權(quán)限外,其他用戶只能修改自己創(chuàng)建的新聞。所以在修改和刪除新聞時,需要判斷當(dāng)前用戶是否是 Admin或指定新聞的作者。 可以實(shí)現(xiàn)此功能,代碼如下: % If Session UserName Admin Then NewsId Request Id 39。根據(jù)新聞編號讀取新聞信息 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 或新聞的作者,無權(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)頁的輸出。 在文件中引用此文件作為頭文件,代碼如下: !include File 置模塊 在添加和修改新聞內(nèi)容時,需要對字體、字號、顏色和排列位置等屬性進(jìn)行設(shè)置。 可以實(shí)現(xiàn)這些功能。 的設(shè)計界面: 如圖 所示。 圖 信息設(shè)置 在使用 時,設(shè)置指定的選項,將會在新聞內(nèi)容中生成相應(yīng)的6HTML 代碼。例如,選中正 文 abc,然后選擇“楷體”、“ 1 號字”,將生成如下代碼: font[space]face 楷體 _GB2312 font[space]size 1 abc [space]是自定義的符號,因為空格在轉(zhuǎn)換成 HTML 格式時,將被替換為“ amp。nbsp;”,所以這里使用 [space]表示空格。在顯示新聞內(nèi)容時,程序?qū)詣訉?[space]轉(zhuǎn)換為空格。 因為 的代碼較多,這里僅以字體控制的代碼為例說明。相關(guān)代碼如下: SELECTonChange varc [].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 隸書 隸書 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 TimesNew Roman Times New Roman OPTION value Trebuchet MS Trebuchet