仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1842|回复: 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能做到,例如银行安全控件
海妖 该用户已被删除
19#
发表于 2015-7-16 23:17:53 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
山那边是海 该用户已被删除
18#
发表于 2015-7-14 14:10:10 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
17#
发表于 2015-7-10 12:11:25 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
再现理想 该用户已被删除
16#
发表于 2015-7-8 08:30:25 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
若天明 该用户已被删除
15#
发表于 2015-6-24 21:10:53 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
乐观 该用户已被删除
14#
 楼主| 发表于 2015-6-11 08:47:03 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
admin 该用户已被删除
13#
发表于 2015-5-8 15:03:45 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
飘灵儿 该用户已被删除
12#
发表于 2015-5-4 04:00:55 | 只看该作者
掌握asp的特性而且一定要知道为什么。
蒙在股里 该用户已被删除
11#
发表于 2015-4-3 00:37:16 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
金色的骷髅 该用户已被删除
10#
发表于 2015-3-30 09:43:41 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
小女巫 该用户已被删除
9#
发表于 2015-3-20 03:55:58 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
老尸 该用户已被删除
8#
发表于 2015-3-19 12:05:17 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-19 08:09:23 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
谁可相欹 该用户已被删除
6#
发表于 2015-3-11 19:05:13 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-3-11 13:47:02 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
只想知道 该用户已被删除
地板
发表于 2015-3-6 16:06:46 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
变相怪杰 该用户已被删除
板凳
发表于 2015-2-14 16:11:17 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
柔情似水 该用户已被删除
沙发
发表于 2015-2-9 09:01:03 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
兰色精灵 该用户已被删除
楼主
发表于 2015-2-4 01:06:28 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 00:32

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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