快速业务通道

设计聊天室

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10
            用户IP

<%
B3=Request("B3")
If B3="发言" Then                      准备把用户发言写到聊天表中
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr
%> <%
word=Request("word")
if Request("word")="" then            如果什么都没写就发言,则默认发言为两眼开开,正在发呆
word="两眼开开,正在发呆....."
end if
%> <%
sz = "''''''''''''''''" & Request("ip") &_                  把用户发言写到聊天表中
"'''''''''''''''', ''''''''''''''''"& Request("name") &_
"'''''''''''''''', ''''''''''''''''"& Request("D1") &_
"'''''''''''''''', ''''''''''''''''"& Request("D3") &_
"'''''''''''''''', ''''''''''''''''"& Request("D2") &_
"'''''''''''''''', ''''''''''''''''"& word & "''''''''''''''''"
into_db = "INSERT INTO 聊天表 ( ip, 姓名, 颜色, 表情, 说话对象, 说话 ) VALUES(" &_
sz & ")"
conn.Execute(into_db)
conn.Close end if 3、用户离开 B5=Request("B5")
If B5="离开聊天室" Then                   如果用户选择离开聊天室则
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr                      从在线名单中把他删除
sql5="delete * FROM 在线用户表 WHERE 姓名=''''''''''''''''" & Request("name") & "''''''''''''''''"
conn.Execute(sql5) name1=Request("name")
sex1=Request("D4")
ming1="管理员宣布"                      管理员宣布此用户离开
sz1="" & name1 & sex1 & "有事先离开,欢迎再来"
into_db2 = "INSERT INTO 聊天表 ( 姓名,说话 ) VALUES(''''''''''''''''" & ming1 & "'''''''''''''''',''''''''''''''''" & sz1 & "'''''''''''''''')"
conn.Execute(into_db2)
conn.close
Response.Redirect "chat.asp"
end if end if
%> 把此文件存为chatadd1.asp 当我们把上面的程序保存在具有执行权限的服务器目录中,在客户端用浏览器打开时,我们见到了平常聊天室一样的用户登陆界面。我们于是输入用户名及密码,按发送时,我们所输入的资料便会暗中存入用户数据库中。接着便出现了发言筐,我们试着输入一句话,点发言按钮,这时,我们的发言便会带着我们所输入的话,我们所选择的说话对象,我们所选择的颜色以及表情写入发言数据库中。但是,发言之后,我们并没有发现任何语句出现在屏幕上,那是因为:这个程序本身负责的纯粹是把数据库写入数据库,他不会向客户端返回任何东西,除非你的输入是错误的。
  聊天室还需要一个重要的程序,这个程序自动的、不断的读取数据库中最新的记录,把他显示在所有用户的浏览器上。这个程序与别的任何程序没有任何关系,他的唯一的任务是读取发言数据库中的数据,把他显示出来,他不管客户是否输入发言,不管客户对谁说话,不管客户选择什么表情与颜色。当这个聊天室即使没有一个人说话,这个程序也是不断的读取这个数据库,每N秒钟刷新一次,这个N是由编程者决定的。
  由此,我们可知:登陆_发言部分与自动刷新部分是没有任何联系的。
  在分析范例程序之前,我们最好来分析一下几点:
  1、在我们往数据库中写入数据库时,记录是不断往数据表的尾部增加的,因此,我们必须知道哪一句话是新的,哪一句话在前面说的,我们知道,在MSACCESS数据库表中,有一个自动编号的字段ID,这个字段非常有用,ID最大

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号