网络编程
位置:首页>> 网络编程>> Asp编程>> ASP编程入门进阶(十):Global.asa文件(4)

ASP编程入门进阶(十):Global.asa文件(4)

作者:cnbruce 来源:CSDN 发布时间:2008-07-12 07:05:00 

标签:global,文件,编程,asp

四、深入研究Global.asa

从上面的调试中,举一反三的你,一定会提出一个问题:如何控制注册用户在线人数?
那下面几个文件一个一个看:

5,Global.asa(放在被调试的虚拟目录的根目录下面)

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
application("online")=0
End Sub
Sub Session_OnStart
End Sub
Sub Session_OnEnd
 if session.contents("pass") then '判断是否为登录用户的Session_OnEnd
  application.lock
  application("online")=application("online")-1
  application.unlock
 end if
End Sub
Sub Application_OnEnd
End Sub
</SCRIPT>

注意本Global.asa中的Session_OnStart块不做任何事件。

因为一旦有用户访问服务器而不管用户是否登录,都会产生OnStart事件,而现在需要的只是登录用户的在线,所以不能在OnStart事件里使Applicaiton("online")加1。

又因为不管是否是登录用户的会话结束都会产生OnEnd事件(假如有访客访问了服务器但并不登录,他的会话结束后也会产生OnEnd事件),所以在Session_OnEnd事件里用了句if语句来判断是否为已登录用户的OnEnd事件,如果是才将在线人数减1。

并且值得注意的是:session.contents("pass")的使用,因为在OnEnd事件里禁止使用Session对象,但是可以用Session对象的集合来调用session变量。也就是说不能直接写session("pass"),而是需要写session.contents("pass")。

6,login.asp

<%
if request.querystring("logout")="true" then
session.Abandon()
end if
submitname=request.form("submit")
if submitname="submit" then
 name=request.form("name")
 pwd=request.form("pwd")
 if name="cnbruce" and pwd="cnrose" then
  session("name")=name
  session("pass")=true
 else
  response.write "Error Name Or Pwd.<a href='login.asp'>Back</a>"
  response.end
 end if
application.lock
application("online")=application("online")+1
application.unlock
%>
当前注册会员<%=application("online")%>人。
<a href="login.asp?logout=true">退出</a>
<%else%>
<form action="login.asp" method="post">
<input type="text" name="name"><br>
<input type="password" name="pwd"><br>
<input type="submit" name="submit" value="submit">
<%end if%>

只是简单地检测用名是cnbruce,密码是cnrose的时候,生成一个session("pass")=true,就是放在Global.asa中判断的。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com