使用ASP規(guī)劃聊天室
發(fā)表時間:2024-02-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]合肥 程雙明 經(jīng) 常 在Internet 上 沖 浪 的 網(wǎng) 友 恐 怕 很 少 有 人 沒 有 去 過 聊 天 室 胡亂神聊。 你 只 要 稍 微 留 意 一 下 就會 發(fā) 現(xiàn) 這 些 聊 天 室 大 多 是 用CGI 程 序 或 者 用JAVA 開...
合肥 程雙明
經(jīng) 常 在Internet 上 沖 浪 的 網(wǎng) 友 恐 怕 很 少 有 人 沒 有 去 過 聊 天 室 胡亂神聊。 你 只 要 稍 微 留 意 一 下 就會 發(fā) 現(xiàn) 這 些 聊 天 室 大 多 是 用CGI 程 序 或 者 用JAVA 開 發(fā) 的 Applet 維 護 的。 開 發(fā) 過 這 類CGI 或Applet 的 程 序 員 都 知 道, 這 種 開 發(fā) 工 作 是 費 時 費 力 的。 那 么 有 沒 有 一 種 更 簡 單、 省 力 的 開 發(fā) 方 式 呢 ? 答 案 是 肯 定 的。
關 于ASP 的介紹有許多計算機雜志介紹過,在這里不在贅 述。
一、 聊 天 室 的 規(guī) 劃:
1、 談 話 內(nèi) 容 儲 存 方 式 的 選 擇: 在 客 戶 機 上 顯 示 即 時 談 話 的 內(nèi) 容 應 以 什 么 方 式 儲 存 在 服 務 器 呢 ?ASP 有 兩 種 選 擇, 一 種 是 以 文 本 文 件 方 式, 一 種 是 以 數(shù) 據(jù) 庫 方 式。 但 筆 者 感 覺ASP 對 文 本 文 件 操 作 的 指 令 遠 不 如ADO(Active Data Object) 提 供 的 對 數(shù) 據(jù) 庫 操 作 的 指 令 多。 所 以 利 用ADO,ASP 能 對 數(shù) 據(jù) 庫 靈 活 地 操 作, 比 如 插 入、 刪 除、 更 新、 查 詢 等 等。 筆 者 選 擇Access 數(shù) 據(jù) 庫 來 儲 存 談 話 的 內(nèi) 容。 該 數(shù) 據(jù) 庫 內(nèi) 容 只 保 留 一 天( 可 根 據(jù)LAN 的 實 際 情 況 確 定 時 間 長 短) 的 談 話 內(nèi) 容。
2、 聊 天 室 界 面 的 設 計: 為 了 客 戶 能 夠 方 便 地 瀏 覽 站 點 的 內(nèi) 容, 又 能 盡 可 能 地 顯 示 聊 天 室 的 內(nèi) 容, 筆 者 在 一 幅 主 頁 里 設 計 了 三 幀。 左 邊 一 幀 顯 示 的 是 站 點 的Index。 右 邊 一 幀 又 分 成 上 下 兩 幀。 上 幀 占70%, 用 來 顯 示 當 前 聊 天 室 的 內(nèi) 容; 下 幀 占30%, 用 來 提 供 一 個 文 本 輸 入 框 和 供 用 戶 反 饋 的 按 鈕。
3、 進 入 聊 天 室 的 步 驟: 象 大 多 數(shù) 聊 天 室 一 樣, 首 先 應 該 提 供 給 用 戶 一 個 登 錄 界 面, 由 用 戶 輸 入 自 己 的 名 字 或 別 名 和 自 己 隨 意 給 定 的 密 碼。 如 果 輸 入 的 用 戶 名 與 線 的 用 戶 名 相 同, 則 提 示 用 戶 重 新 選 擇 用 戶 名 或 重 新 輸 入 密 碼, 以 保 證 在 線 的 所 有 用 戶 名 都 是 唯 一 的。 登 陸 成 功 后 進 入 聊 天 室, 內(nèi) 容 顯 示 幀 顯 示“ 歡 迎 加 入” 的 歡 迎 信 息。 用 戶 就 可 以 在 文 本 輸 入 區(qū) 內(nèi) 輸 入 談 話 內(nèi) 容 了。
二、 設 計 過 程 和 開 發(fā) 技 巧:
1、 設 計ODBC 系 統(tǒng) 數(shù) 據(jù) 源: 如 前 所 述, 本 開 發(fā) 采 用ASP 對 ADO 進 行 操 作, 因 此 必 須 先 對 數(shù) 據(jù) 源 進 行 設 置。 在NT 服 務 器 的 控 制 面 板 里 雙 擊ODBC 圖 標, 在 系 統(tǒng)DSN 頁 添 加 系 統(tǒng)DSN, 選 擇Microsoft Access Driver,Data Source Name 為‘fybchat’, Database 選 擇Chat 目 錄 下 的chat.mdb. 該 數(shù) 據(jù) 庫 包 括 下 面 幾 個 字 段:name, content, password, chattime, chatdate, 分 別 以 來 存 儲 姓 名、 談 話 內(nèi) 容、 密 碼、 談 話 時 間 和 談 話 日 期。
2、 登 錄 界 面 設 計: 登 錄 界 面 為 一html 頁, 包 含 一 些 警 告 信 息 和 一 個Form。 該Form 以 來 獲 取 帳號和 密 碼, 如 下 所 示:
<form method="post" action="receivedata.asp">帳號:
<input type="text" name="usname" >密 碼:
<input type="password" name="uspassword" >
</center >
<input type="submit" value=" 進 入" >
<input type="reset" value=" 重 填" >
</center >
<input type="hidden" name="content" value="" >
</form>
通 過 提 交 按 鈕 來 激 發(fā)receivedata.asp。 該ASP 文 件 主 要 來 保 證 在 聊 天 室 里 沒 有 兩 個 用 戶 是 同 帳號 的。 用 戶 提 交 信 息 后, 該 文 件 打 開chat.mdb 檢 查 是 否 已 經(jīng) 有 該帳號, 如 果 有 但 密 碼 不 對 就 提 醒 用 戶 重 新 輸 入 密 碼, 如 果 沒 有 那 么 用 戶 就 順 利 進 入 了 聊 天 室。 進 入 聊 天 室 界 面 的 功 能 由 下 列 語 句 完 成:
<FRAMESET ROWS="70%,30%" >
<FRAME SRC="forum.asp" NAME="main" MARGINWIDTH="1"
MARGINHEIGHT="1" Noresize >
<FRAME SRC="frft.asp?kname= <% =name%>" NAME="footnotes"
MARGINWIDTH="1" Noresize >
</FRAMESET >
注 意 這 里 有 一 個 技 巧, 通 過 參 數(shù)kname 將 用 戶 的 帳號 隱 藏 在 客 戶 的 瀏 覽 器 里 面 了, 這 樣 一 來, 用 戶 每 次 提 交 談 話 內(nèi) 容 的 同 時 也 把 他 的帳號提 交 了。
3、 文 本 輸 入 區(qū) 的 設 計: 文 本 輸 入 區(qū) 是 由frft.asp 產(chǎn) 生 的。 如 上 所 述, 用 戶 每 次 提 交 談 話 內(nèi) 容 的 同 時 也 把 他 的 帳號 提 交 了, 用 戶 提 交 談 話 內(nèi) 容 的 動 作 是 激 活forum.asp。 Forum.asp 的 作 用 是 刷 新 聊 天 室 的 內(nèi) 容。Frft.asp 內(nèi) 容 如 下
<!DOCTYPE HTML PUBLIC " -//IETF//DTD HTML//EN" >
<html >
<head >
<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80" >
<meta name="GENERATOR" content="Microsoft FrontPage 2.0" >
<title >
</head >
<body >
<% kname=request.QueryString("kname")% >
<base target="main" >
<form name="fm1" method="POST" action="forum.asp">
<p align="center" ><input type="text" size="90" name="content" > <p align="center" ><input type="button" name="B1" value=" 提 交/ 刷 新" >
<input type="reset" name="B2" value=" 重 寫" >
<input type="hidden" name="kname" value=