仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1672|回复: 19
打印 上一主题 下一主题

[学习教程] ASP网页编程之聊天室建立详解三

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:31:50 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全   接上去,咱们入手下手对用户上岸与讲话实例法式停止剖析: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>
    <input type="submit" value="分开聊天室" name="B5">
   <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
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件
乐观 该用户已被删除
沙发
 楼主| 发表于 2015-6-11 08:47:03 | 显示全部楼层
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-10 19:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表