当前位置: 首页 > 图文教程 > 网络编程 > ASP > 聊天室建设详解一

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

ASP 中的 聊天室建设详解一


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 234 ::
收藏到网摘: n/a

      一位精通程式设计的大师,在每开发一个项目的时候,往往要经过非常严密的计划,十分严格的求证,否则,辛辛苦苦开发的程序一旦中途发现问题,那往往都是前功尽弃,从头开始。特别是开发一个大型项目,那计划与求证过程比编写程序过程更为重要。

  然而,如果我们是一位程式设计的初学者,要让我们开发一个例程,我们的做法又往往与上面的做法相反。往往从最简单的实例开始,实现最初步的功能,然后在简单的基础上不断对程序加以改进、完善,使其功能不断增加,发展,强大。

  我自己有一个习惯:在设计一些中小程式时,我喜欢花更大的精力去探究、去发现它的难点部分,挖掘它的核心部分,然后从其核心开始进行实验性编程。一般一个程式往往有几个难点与核心部分。一旦这些核心部分完成实验,我们便可以胸有成竹的去对整个程式进行规划,如此便可较迅速的完成设计。

  我们要建设一个聊天室,首先,这个聊天室的整体概况要在我们脑海中要有一个初步的影像,在众多的公共聊天室中,其核心无非是:
  1、聊天者把语句写入文本或数据库;
  2、浏览器不断的对文本或数据库进行刷新、读取;
  3、实时更新在线的客户;
  4、管理员对聊天者进行踢或IP禁止操作。

  若是一个初学程式设计,你能够实现写数据库、自动刷新、获取客户IP的实验,那么,实际上建设聊天室也就完成了一大半。首先,要完成这几个实验,我们至少要熟悉一些ASP脚本及一些SQL命令。

  1、<%IP=Request("REMOTE_ADDR")%>
   您的IP地址为:
   <%=IP%>

   这是一段获取客户IP的脚本,如果你看过《ASP教程》,你应该知道REMOTE_ADDR是
   一个服务器环境变量,返回发出请求的远程主机(client)的IP地址。

  2、<%
   Set Conn=Server.CreateObject("ADODB.Connection")
   Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access     Driver (*.mdb)};"

   Conn.Open connstr
   sql="SELECT * FROM 在线用户表 WHERE 姓名='" & Request("name") & "'"
   Set Rs=conn.Execute(sql)

   If Rs.Bof OR Rs.Eof Then
    sz = "'" & Request("name") &_
    "', '"& Request("D4") &_
    "', '"& time1 & "'"
    into_db = "INSERT INTO 在线用户表 ( 姓名, 性别, 登陆时间 ) VALUES(" &_
    sz & ")"
    conn.Execute(into_db)
   end if
   %>

   这是一段十分常见的对数据库操作的脚本,其中包含了对数据库的条件查询与记录添加。上面此段程序我们分三部分来分析,如上以空格分隔的三个部分。
  要使用组件提供的对象,请创建对象的实例并将这个新的实例分配变量名。使用ASP的Server.CreateObject方法可以创建对象的实例,使用脚本语言的变量分配指令可以为对象实例命名,如下例:
   Set Conn=Server.CreateObject("ADODB.Connection")
   这里的变量Conn 是ASP 程序创建的访问数据库的对象实例 。
  我们要访问数据库,首先要必须知道这个数据库在哪里,这个数据库的驱动程序是什么,要指定这两点有两种方法:第一是在服务器端手动创建数据库源名、指定数据库路径、指定数据库驱动程序,这个方法是通过服务器端的控制面版中的 ODBC 来设置的。她的优点是可以限定数据库的访问权限,增加数据库的安全性,缺点是数据库不易移植。
  再有一种方法是使用 ASP 来指定数据库路径及数据库驱动程序。不必手动对创建数据库源。在此例中,我们用的是第二种方法。server.mappath("chat.mdb")指定数据库路径,DRIVER={Microsoft Access Driver (*.mdb)};指定数据库驱动程序,此例中我们使用的是MS ACCESS 数据库。

  SELECT是 SQL 查询命令。sql="SELECT * FROM 在线用户表 WHERE 姓名='" & Request("name") & "'" 表示查询 数据库chat.mdb中的 在线用户表 中所有姓名等于Request("name")的人,Request("name")是读取表单中名为 NAME 的数据。

  Bof 是文件开头,Eof是文件结尾。If Rs.Bof OR Rs.Eof Then...语句往往用于判断数据库中是否存在符合条件的记录,如果为真则记录不存在,如果为假则记录存在。
  INSERT INTO是SQL中的插入命令,往往用于插入一条记录。

  上面此段程序,整体的意思就是:查询数据库在线用户表中是否存在用户Request("name"),如果不存在这个用户则把这个用户添加到在线用户表中。

  3、<meta http-equiv="refresh" content=&q