欧莱雅招聘官网:怎样用asp创建聊天室?(高分)

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 04:17:07
最近 我想自己做一个聊天室 要asp的
哪位有经验的高手可以告诉我制作的思路啊?
有代码也可以啊。。。

用ASP建造自己的聊天室

聊天室想必你一定去过吧,但想不想建立自己的聊天室呢?其实这一点都不难,Active Server Script提供了Application对象和Session对象,Application对象代表了一个Active Server应用程序,也就是一个Web网页,Session对象则表示一个用户,代表一个用户对这个页面的一次访问,通过Application对象可以让访问它的所有用户共享信息,并可以在Web服务器运行期间持久地保存数据,而Session对象也可以在用户的一次访问期间持久地保持数据,利用这两个对象,就可以十分方便地建造自己的Chat应用程序。
---- 一、Application对象:

---- 1.属性:Application对象没有内置的属性,但用户可以定义自己的属性:

---- Application(“属性名称”)=值,一旦分配了属性,它就会一直存在,直到Web服务器关闭服务,而且它能被所有用户读取,所以可以用它在用户之间发送谈话内容。

---- 2.方法:当两个用户同时对Application属性的值进行写入操作时,会出现一方的修改被另一方的操作直接覆盖掉的情况,为了避免这种现象,用户可以调用Lock方法进行锁定,这样只有当前用户才能够对Application的属性进行操作,用户完成操作后调用Unlock方法解锁,使得其他用户也可以修改Application的属性。

---- 3.事件:创建Active Server应用程序需要在Web服务器上存放应用程序的虚拟主目录下创建Global.asa文件,它含有Application对象和Session对象的事件处理例程,通常,Application_Onstart事件用来定义应用级的属性。

---- 二、创建一个Chat应用程序:程序运行时如下图所示(略)

---- 1.设置应用程序的变量:这里需建立两个应用程序级的变量,gchars数组用来存放用户的谈话内容,gcounter用做计数器,控制页面的显示行数,在这里我们让页面最多显示最近的10行谈话内容。当应用程序启动时这些变量必须进行初始化,所以它们的创建都要在Global.asa文件中的Application_onstart事件中:

< script language="vbscript" runat="server" >
sub application_onstart()
dim lchars(10)
application("gchars")=lchars
application("gcounter")=0
end sub
< /script >

---- 2.确定处理ASP的方式:当用户第一次请求这个ASP文件时,用的是GET方法,然后,当用户输入完谈话内容后提交时用的是POST方法,在这里表单是向自身提交的,所以这个ASP文件会被再次请求,我们通过测试Request . ServerVariales(“Request_Method”)变量来确定文件被请求的方式:IF Request . ServerVariales(“Request_Method”)=“POST” then

---- 3.确定讲话者:当用户第一次提交谈话内容时需输入自己的姓名,一旦在txtname框中输入数据后,程序将建立一个会话级变量来存放用户姓名,并自动显示在txtname框中,用户就不需再次输入了,除非你想用另一个名字加入会谈。

IF len(request(“txtname”)) >0 then
Session(“ssname”)=request(“txtname”)
End if
< h5 >您的姓名:
< input type=“type” name=“txtname”
length=“20” value=< %=session(“ssname”)% > >

----

---- 4.处理用户的谈话内容:首先要确定已经为Chat写入的谈话行数,为方便阅读,在这里将显示行数限定为10行,如果Application(“gcounter”)大于9,则将其置为0,然后将谈话者姓名和内容一起存放到Application(“gchars”)数组中:

Application(“gchars”)
(Application(“gcounter”))=Session(“ssname”) &
“:” & request(txttalk)

然后将计数器加1:Application(“gcounter”) =Application(“gcounter”)+1

---- 5.将数组内容写入到客户的浏览器中:用户提交谈话内容后,程序必须将数组内容写到客户的浏览器中,让聊天室中的所有人都能看到被提交的谈话内容:

if application("gcounter")=0 then
lstemp=application("gchars")(0)
else
for x=0 to application("gcounter")-1
lstemp=lstemp & "< br >" & application("gchars")(x)
next
end if

---- 最后,用Response.write方法将lstemp变量的值写到客户的浏览器中去:

response.write lstemp

---- 下面给出Default.asp的完整代码:

< %response.expires=0
response.buffer=true% >
< html >< head >< title >Chat sample< /title >< /head >
< body >< center >
< h3 >我的聊天室< /h3 >< /center >< hr >
< % if request.servervariables("request_method")="POST" then
if len(request("txtname")) >0 then
session("ssname")=request("txtname")
end if
application.lock
mcounter=application("gcounter")
mchars=application("gchars")
if mcounter >9 then
mcounter=0
end if
mchars(mcounter)=session("ssname")
& ":" & request("txttalk")
mcounter=mcounter+1
application("gcounter")=mcounter
application("gchars")=mchars
application.unlock
end if % >
< % if application("gcounter")=0 then
lstemp=application("gchars")(0)
else
for x=0 to application("gcounter")-1
lstemp=lstemp & "< br >" & application("gchars")(x)
next
end if
response.write lstemp % >
< hr >< center >
< form action="default.asp" method=post name="aspform" >
< b >< a href="default.asp" >
更新显示< /a >< /b >
< h5 >发言:
< input type="text" name="txttalk" size="70" >< br >
< h5 >您的姓名:
< input type="text" name="txtname" length="20"
value=< %=session("ssname")% > >
< input type="submit" name="cmdpost" default="true" value="发送" >
< /form >< /center >< /body >< /html >

---- 以上代码在NT4.0、IIS4.0、IE4.0中和Pwin98、PWS、IE4.0中分别运行通过。

才疏学浅,我只能帮助这些了,请见谅

简单聊天室源代码:

chat.html
<html>
<head><title>Chat</title></head>
<frameset rows="*,100">
<frame src="chatopinions.asp">
<frame src="chatform.asp">
</frameset>
</html>

chatopinions.asp
<html>
<head>
<META HTTP-EQUIV=refresh content="5;URL=chatopinions.asp"></head>
<body bgcolor=FFFFFF>
<center>
<table border=0 width=350>
<tr><td width=50>
<% =Application("A9") %></td><td width=300><% =Application("B9") %>
</td></tr><tr><td>
<% =Application("A8") %></td><td><% =Application("B8") %>
</td></tr><tr><td>
<% =Application("A7") %></td><td><% =Application("B7") %>
</td></tr><tr><td>
<% =Application("A6") %></td><td><% =Application("B6") %>
</td></tr><tr><td>
<% =Application("A5") %></td><td><% =Application("B5") %>
</td></tr><tr><td width=50>
<% =Application("A4") %></td><td><% =Application("B4") %>
</td></tr><tr><td>
<% =Application("A3") %></td><td><% =Application("B3") %>
</td></tr><tr><td>
<% =Application("A2") %></td><td><% =Application("B2") %>
</td></tr><tr><td>
<% =Application("A1") %></td><td><% =Application("B1") %>
</td></tr></table>
<table border=0 width=350>
<tr><td align=right>
Get your chat at <A REF="http://www.submitside.com">Submitside</A>: free script.
</td></tr></table>
</center>
</body>
</html>

chatform.asp
<%
If Request.Form ("Opinion")="" then
ShowForm()
else
if Session("AA")="" then
NewUser()
GoAhead()
else
GoAhead()
end if
end if %>
<% Sub ShowForm() %>

<html><body bgcolor=FFFFFF>
<center>
<form method=post action=chatform.asp>
<table border=0><tr><td>
<% if Session("AA")="" then %>
Chose a name or nickname
<input type=text name=Name size=20><BR>
Type your opinion
<% else %>
<% =Session("AA") %>
<% end if %>
<input type=text size=60 name=Opinion value="<% =request.form("Opinion") %>"><BR>
<input type=submit value="Submit">
</td><tr></table>
</form>
</center>
</body>
</html>

<% End Sub %>

<% Sub GoAhead() %>

<%
BB=Request.form("Opinion")
BB=server.htmlencode(BB)

Application.Lock
Application("B1")=Application("B2")
Application("B2")=Application("B3")
Application("B3")=Application("B4")
Application("B4")=Application("B5")
Application("B5")=Application("B6")
Application("B6")=Application("B7")
Application("B7")=Application("B8")
Application("B8")=Application("B9")
Application("B9")=BB

Application("A1")=Application("A2")
Application("A2")=Application("A3")
Application("A3")=Application("A4")
Application("A4")=Application("A5")
Application("A5")=Application("A6")
Application("A6")=Application("A7")
Application("A7")=Application("A8")
Application("A8")=Application("A9")
Application("A9")=Session("AA")
Application.Unlock
%>

<html>
<head></head><body bgcolor=FFFFFF>
<center>
<form method=post action=chatform.asp>
<table border=0><tr><td>
<% =Session("AA") %> <input type=text size=60 name=Opinion>
<BR><input type=submit value="Submit">
</td></tr></table>
</form>
</center>
</body>
</html>

<% End Sub %>

<% Sub NewUser() %>
<%
AA=Request.form("Name")
AA=server.htmlencode(AA)
Session("AA")=AA
%>

<% End Sub %>

面介绍其主要步骤:

1,添加Global.asa文件里面的代码.这部分代码主要处理Application_onStart事件,在此事件中,定义了一个有15个元素的数据,并把它赋给了一个Application对象的属性.Global.asa文件的内容如下.

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
SUB Application_OnStart
dim maChats(15) 定义一个具有15个元素的数据.
Application("gaChats")=maChats 存储谈话的内容.
Application("giCounter")=0 存储已有的谈话数目.
END SUB
</SCRIPT>

2,在AspChat.asp文件中添加代码.注意,要把这部分代码添加在主页中的两条水平线之间,也就是文本中的两个<hr>之间.程序首先判断申请这幅主页时,是否用的是"Post"方法,因为本例中窗口的提交方法是"post".而一般第一次申请这幅主页时,用的是"get"方法.所以如果采用的是"post"方法的话,就说明是某一浏览者在提交自己的谈话内容时的重新申请,这就要进行处理,因为又有新的谈话内容了.否则,说明某一浏览者第一次申请此主页,并没有提交什么谈话,因此只需要把当前的谈话内容显示出来就可以了.

<p align="center"><font size=5>一个简单的聊天室</font></p>
<br>
<%
处理输入
if Request.ServerVariables("Request_Method")="POST" then
标明讲话者
if len(Request("txtWho"))>0 then
Session("ssWho")=Request("txtWho")
end if
封锁Application对象
Application.Lock
创建本地引用指针
mlCounter=Application("giCounter")
maChats=Application("gaChats")
如果写入的行数超过10,则重新开始记数.
if mlCoundter>9 then
mlCoundter=0
end if
增加用户的输入,计数器加1
maChat(mlChounter)=Session("ssWho")&":"&Request("txtCents")
mlCounter=mlCounter+1
把局部变量设置为在应用范围内有效.
Applicati "giCounter")=mlCounter
Application("gaChats")=maChat
消除Application对象的封锁
Application.Unlock
end if
%>
<%
写入TextArea
if Application("giCounter")=0 then
lstemp=Application("gaChats")(0)
else
for x=0 to Application("giCounter")-1
lstemp=lstemp&"<br>"Application("gaChats")(x)
next
end if
Response.white lstemp
%>
<hr>

3,最后把txtWho的内容初始化.也就是当浏览者输入过一次自己的姓名以后就不用再次输入了,为了区分每个不同的浏览者,在这里使用了"Session"对象.利用Session("ssWho")记载浏览者的姓名.下面的代码直接写在以上代码的下面存入AspChat.asp中.

<form method="POST" action="aspchat.asp" name="frmAsp">
<div align="center"><center><p>发言:<input type="text" name="txtCents" size="34"></p>
</center></div><div align="center"><center><p>对象:<input type="submit" value="送出" name="B1"></p>
</center></div>
</form>

4.完成.只要把2,3步的代码前后加入完整的htm文件代码然后存为aspchat.asp就可以了,这是一个很简单的asp聊天室程序,大家可以随着学习的深入不断加强它的功能!

我有一个小的聊天程序,希望能帮助你!(才疏学浅)
我的QQ:158850238
可以发给你!周一到周五 随时在线!

rjrtxtrxkjzrtrxtjk