深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

利用ASP规划聊天室


March 25,2004

    合肥 程双明
            经 常 在Internet 上
    冲 浪 的 网 友 恐 怕 很 少 有 人 没 有 去 过 聊 天 室 胡乱神聊。
    你 只 要 稍 微 留 意 一 下 就会 发 现 这 些 聊 天 室 大 多 是 用CGI
    程 序 或 者 用JAVA 开 发 的 Applet 维 护 的。 开 发 过 这 类CGI 或Applet
    的 程 序 员 都 知 道, 这 种 开 发 工 作 是 费 时 费 力 的。 那 么
    有 没 有 一 种 更 简 单、 省 力 的 开 发 方 式 呢 ? 答 案 是 肯 定
    的。
       关 于ASP 的介绍有许多计算机杂志介绍过,在这里不在赘 述。
   
       一、 聊 天 室 的 规 划:
       1、 谈 话 内 容 储 存 方 式 的 选 择:
    在 客 户 机 上 显 示 即 时 谈 话 的 内 容 应 以 什 么 方 式 储 存
    在 服 务 器 呢 ?ASP 有 两 种 选 择, 一 种 是 以 文 本 文 件 方
    式, 一 种 是 以 数 据 库 方 式。 但 笔 者 感 觉ASP 对 文 本 文 件
    操 作 的 指 令 远 不 如ADO(Active Data Object) 提 供 的 对 数 据 库 操 作
    的 指 令 多。 所 以 利 用ADO,ASP 能 对 数 据 库 灵 活 地 操 作, 比
    如 插 入、 删 除、 更 新、 查 询 等 等。 笔 者 选 择Access 数 据 库
    来 储 存 谈 话 的 内 容。 该 数 据 库 内 容 只 保 留 一 天( 可 根
    据LAN 的 实 际 情 况 确 定 时 间 长 短) 的 谈 话 内 容。
       2、 聊 天 室 界 面 的 设 计: 为 了 客
    户 能 够 方 便 地 浏 览 站 点 的 内 容, 又 能 尽 可 能 地 显 示 聊
    天 室 的 内 容, 笔 者 在 一 幅 主 页 里 设 计 了 三 帧。 左 边 一
    帧 显 示 的 是 站 点 的Index。 右 边 一 帧 又 分 成 上 下 两 帧。 上
    帧 占70%, 用 来 显 示 当 前 聊 天 室 的 内 容; 下 帧 占30%, 用 来
    提 供 一 个 文 本 输 入 框 和 供 用 户 反 馈 的 按 钮。
       3、 进 入 聊 天 室 的 步 骤: 象 大 多
    数 聊 天 室 一 样, 首 先 应 该 提 供 给 用 户 一 个 登 录 界 面,
    由 用 户 输 入 自 己 的 名 字 或 别 名 和 自 己 随 意 给 定 的 密
    码。 如 果 输 入 的 用 户 名 与 线 的 用 户 名 相 同, 则 提 示 用
    户 重 新 选 择 用 户 名 或 重 新 输 入 密 码, 以 保 证 在 线 的 所
    有 用 户 名 都 是 唯 一 的。 登 陆 成 功 后 进 入 聊 天 室, 内 容
    显 示 帧 显 示“ 欢 迎 加 入” 的 欢 迎 信 息。 用 户 就 可 以 在
    文 本 输 入 区 内 输 入 谈 话 内 容 了。
       二、 设 计 过 程 和 开 发 技 巧:
       1、 设 计ODBC 系 统 数 据 源: 如 前 所
    述, 本 开 发 采 用ASP 对 ADO 进 行 操 作, 因 此 必 须 先 对 数 据
    源 进 行 设 置。 在NT 服 务 器 的 控 制 面 板 里 双 击ODBC 图 标,
    在 系 统DSN 页 添 加 系 统DSN, 选 择Microsoft Access Driver,Data Source Name
    为‘fybchat’, Database 选 择Chat 目 录 下 的chat.mdb. 该 数 据 库 包 括
    下 面 几 个 字 段:name, content, password, chattime, chatdate, 分 别 以 来 存
    储 姓 名、 谈 话 内 容、 密 码、 谈 话 时 间 和 谈 话 日 期。
       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>
                 
    通 过 提 交 按 钮 来 激 发receivedata.asp。 该ASP 文 件 主 要 来 保 证
    在 聊 天 室 里 没 有 两 个 用 户 是 同 帐号 的。 用 户 提 交 信 息
    后, 该 文 件 打 开chat.mdb 检 查 是 否 已 经 有 该帐号, 如 果 有
    但 密 码 不 对 就 提 醒 用 户 重 新 输 入 密 码, 如 果 没 有 那 么
    用 户 就 顺 利 进 入 了 聊 天 室。 进 入 聊 天 室 界 面 的 功 能 由
    下 列 语 句 完 成:
        <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 >
                 
    注 意 这 里 有 一 个 技 巧, 通 过 参 数kname 将 用 户 的 帐号 隐 藏
    在 客 户 的 浏 览 器 里 面 了, 这 样 一 来, 用 户 每 次 提 交 谈
    话 内 容 的 同 时 也 把 他 的帐号提 交 了。
       3、 文 本 输 入 区 的 设 计: 文 本 输 入 区 是 由frft.asp 产
    生 的。 如 上 所 述, 用 户 每 次 提 交 谈 话 内 容 的 同 时 也 把
    他 的 帐号 提 交 了, 用 户 提 交 谈 话 内 容 的 动 作 是 激 活forum.asp。
    Forum.asp 的 作 用 是 刷 新 聊 天 室 的 内 容。Frft.asp 内 容 如 下
    <!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=
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved