快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

聊天室建设详解三

接下来,我们开始对用户登陆与发言实例程序进行分析:chatadd1.asp

1、用户登陆

<%Response.Buffer=true%>                指定缓存为真
<body bgcolor="#F8E17A">
<%if Request("name")="" then%>             判定用户名是否为空,以判定用户是否在聊天界面
<%addr=Request("REMOTE_ADDR")%>             获得用户IP
<form method="POST" action="chatadd1.asp">
<p><input type="hidden" name="IP" value="<%=addr%>"><p> 用户登陆表单
<p>请输入匿名:<input type="text" name="name" size="15">
密码:<input type="password" name="pass" size="15">

性别:<select name="D4" size="1" style="color: rgb(0,0,128)">
<option value="先生">先生</option>
<option value="女士">女士</option>
</select>

<input type="submit" value="发送" name="B1">
<input type="reset" value="复原" name="B2"></p>
</form>
<%=Request("a")%>                    返回的错误变量


<%else%>                        用户确在聊天界面中

<%B1=Request("B1")
If B1="发送" Then                    开始判定用户名与密码        

If Request("name")="" or Request("pass")="" Then    判定用户名与密码是否为空
a="名字或密码不能为空!<br>"               假如为空,则定义此错误变量
Response.Redirect "chatadd1.asp?a=" & a & " "      错误一旦出现立刻返回登陆界面
end if

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("IP") &_               把该用户写入用户数据库
"\\\', \\\'"& Request("name") &_
"\\\', \\\'"& Request("D4") &_
"\\\', \\\'"& Request("pass") & "\\\'"
into_db = "INSERT INTO 用户表 ( IP, 姓名, 性别, 密码 ) VALUES(" &_  写入用户数据库
sz & ")"
conn.Execute(into_db)

Else                           假如数据库中已经存在这个用户,则
If Request("pass")<>Rs("密码") Then           查看他的密码是否准确。
a="这个名字已经被别人使用,或者你输入的口令不对!<br>"   假如密码错误则定义错误信息
Response.Redirect "chatadd1.asp?a=" & a & " "      立刻返回登陆界面并返回此错误信息
end if
end if


time1=now                   假如登陆表单没有任何错误,则开始成为在线用户并进入聊天
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)

name=Request("name")
sex=Request("D4")
ming="治理员公布"                     治理员开始公布欢迎这位(先生/女士)的光临
sz="<font size=5 color=#FF0000><strong>" & "热烈欢迎" & name & sex & "的光临"
into_db2 = "INSERT INTO 聊天表 ( 姓名,说话 ) VALUES(\\\'" & ming & "\\\',\\\'" & sz & "\\\')"
conn.Execute(into_db2)

end if

end if%>


2、用户发言
                              用户开始真正发言             
<%addr=Request("REMOTE_ADDR")%>              用户IP
<form method="POST" action="chatadd1.asp">         用户发言表单
<p><input type="hidden" name="ip" value="<%=addr%>"><p>
<p><input type="hidden" name="name" value="<%=Request("name")%>"><p>
<p><input type="text" name="word" size="70"><input type="submit" value="发言" name="B3"><input
type="reset" value="复原" name="B4">

<p>颜色:<select name="D1" size="1" style="color: rgb(0,0,128)">
<option value=" ">黑色</option>              颜色选择
<option value="#ff0000">红色</option>
<option value="#008000">绿色</option>
<option value="#0000FF">蓝色</option>
<option value="#800080">紫色</option>
<option value="#008080">青色</option>
<option value="#800000">深红色</option>
<option value="#00ff00">草绿色</option>
<option value="#00ffff">海蓝色</option>
</select>

<%
Set Conn=Server.CreateObject("ADODB.Connection")     查询更新在线用户
Connstr="DBQ="+server.mappath("chat.mdb")+";DRIVER={Microsoft Access Driver (*.mdb)};"
Conn.Open connstr
sql="SELECT * FROM 在线用户表 "
Set Rs=conn.Execute(sql)
%>

对象:<select name="D2" size="1" style="color: rgb(0,0,128)"> 从在线用户中选择说话对象
<option value="大家">大家</option>
<%Do While not Rs.Eof                   在线用户表单
if Rs("姓名")=Request("D2") then
s="selected"                        这里的条件定义s是为了保持说话对象的不变性,
else                            使用户不必每次都选择说话对象,你也可以对颜色
s=""                            与表情如法炮制。
end if%>
<option <%=s%> value="<%=Rs("姓名")%>"><%=Rs("姓名")%>(<%=Rs("性别")%>)</option>
<%
Rs.MoveNext
Loop
%>
</select>


表情:<select name="D3" size="1" style="color: rgb(0,0,128)"> 表情选择
<option value="微笑着对">微笑</option>
<option value="大笑着对">大笑</option>
<option value="哭泣着对">哭泣</option>
<option value="害羞着对">害羞</option>
<option value="红着脸对">脸红</option>
<option value="愤怒的对">愤怒</option>
<option value="阴沉的对">阴沉</option>
<option value="奸笑着对">奸笑</option>
</select>
&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="离开聊天室" name="B5">
&nbsp;&nbsp;&nbsp;<a href="admin.asp">治理员入口</a>
</form>


<%
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="<font size=5 color=#FF0000><strong>" & 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
返回类别: 教程
上一教程: 使用INSTALLSHIELD制作ASP安装程序(1)
下一教程: W3 JMAIL中文使用说明

您可以阅读与"聊天室建设详解三"相关的教程:
· 聊天室建设详解四
· 聊天室建设详解五
· 聊天室建设详解二
· 聊天室建设详解一
· 聊天室实现私聊(一)
    微笑服务 优质保证 索取样品