ASP网页编程之聊天室建立详解三
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全 接上去,咱们入手下手对用户上岸与讲话实例法式停止剖析:chatadd1.asp1、用户上岸
<%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> 色彩选择
<optionvalue="#ff0000">白色</option>
<optionvalue="#008000">绿色</option>
<optionvalue="#0000FF">蓝色</option>
<optionvalue="#800080">紫色</option>
<optionvalue="#008080">青色</option>
<optionvalue="#800000">深白色</option>
<optionvalue="#00ff00">草绿色</option>
<optionvalue="#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)"> 脸色选择
<optionvalue="浅笑着对">浅笑</option>
<optionvalue="大笑着对">大笑</option>
<optionvalue="呜咽着对">呜咽</option>
<optionvalue="害臊着对">害臊</option>
<optionvalue="红着脸对">酡颜</option>
<optionvalue="恼怒的对">恼怒</option>
<optionvalue="阴森的对">阴森</option>
<optionvalue="狞笑着对">狞笑</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能做到,例如银行安全控件 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 掌握asp的特性而且一定要知道为什么。 不能只是将它停留在纸上谈兵的程度上。 在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
页:
[1]