asp中
在global.asa的
application_onstart里面
set tmp_dic=server.createobject("scripting.dictionary")
redim tmp_a(0)
set tmp_a(0)=tmp_dic
Application("bbs_online")=tmp_a
session_onend里面
'用户注销或者Session失效时,从在线人中删除名字
'Application("bbs_online")指向数组tmp_a,tmp_a(0)指向字典tmp_dic
dim tmp_a,tmp_dic,dic_key,dic_item
tmp_a=Application("bbs_online")
set tmp_dic=tmp_a(0)
dic_key=tmp_dic.keys
dic_item=tmp_dic.items
for n=0 to tmp_dic.count-1
if dic_item(n)=Session.SessionID then
tmp_dic.remove dic_key(n)
exit for
end if
next
set tmp_a(0)=tmp_dic
Application("bbs_online")=tmp_a
以下是一个包含文件banner.asp里的部分代码
每个页面都包含该文件
<%dim tmp_a,tmp_dic,tmp_key
tmp_a=Application("bbs_online")
set tmp_dic=tmp_a(0)
'当前在线人中没有这个名字且名字不为空
if NOT tmp_dic.exists(cstr(request.cookies("user_name"))) and request.cookies("user_name")<>"" then
tmp_dic.add cstr(request.cookies("user_name")),Session.SessionID
end if
set tmp_a(0)=tmp_dic
Application("bbs_online")=tmp_a
tmp_key=tmp_dic.keys%>
<%if tmp_dic.count=0 then%>
当前只有游客在线
<%else%>
<font color=red><b><%=tmp_dic.count%></b></font>会员在线 </td>
<td height="21" bgcolor="#FFFFFF" width="145" style="padding-top: 2; padding-bottom: 2">
<select size="1" name="bbs_online" style="font-size: 9pt; color: #006DB7">
<%for n=0 to tmp_dic.count-1%>
<option value="<%=tmp_key(n)%>"><%=tmp_key(n)%></option>
<%next%>
</select>
<%end if%>
asp.net中:
global.asax.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
namespace alumniV2
{
/// <summary>
/// Global 的摘要说明。
/// </summary>
public class Global : System.Web.HttpApplication
{
public Global()
{
InitializeComponent();
}
protected void Application_Start(Object sender, EventArgs e)
{
Application.Lock ();
Application["usernum"]=0;
Application["onlineuser"]="";
Application["guestnum"]=0;
Application.UnLock ();
}
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock ();
Application["guestnum"]=(Int32)Application["guestnum"]+1;
Application.UnLock ();
}
protected void Application_BeginRequest(Object sender, EventArgs e)
{
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
}
protected void Application_Error(Object sender, EventArgs e)
{
}
protected void Session_End(Object sender, EventArgs e)
{
Application.Lock ();
string name;
if (Request.Cookies ["personal"]!=null )
{
name=Request.Cookies ["personal"]["username"] ;
if (name!="")
{
Application["usernum"]=(Int32)Application["usernum"]-1;
Application["onlineuser"]=(Application["onlineuser"]+"").Replace (name+"$","");
}
else
Application["guestnum"]=(Int32)Application["guestnum"]-1;
}
else
Application["guestnum"]=(Int32)Application["guestnum"]-1;
Application.UnLock ();
}
protected void Application_End(Object sender, EventArgs e)
{
Application.Lock ();
Application["usernum"]=0;
Application["onlineuser"]="";
Application["guestnum"]=0;
Application.UnLock ();
}
#region Web Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
}
#endregion
}
}
index.aspx.cs
private void ShowOnlineUser()
{
onlinenum.Text =" 当前共有 <font color=red>"+ Application["usernum"] +"</font> 个成员 <font color=red>"+ Application["guestnum"] +"</font> 个客人在线 <img src='images/user.gif'> <font color=red>成员</font> <img src='images/guest.gif'> 客人 ";
string oluserstr;
string []oluser;
int n;
oluserstr="";
if (Application["onlineuser"]!=null)
{
//oluser1=;
oluser=(Application["onlineuser"]+"").Split('$');
for (n=0;oluser[n]!="" && oluser[n]!=null;n++)
oluserstr=oluserstr+" <img src='images/user.gif'> <a href='myinfo.aspx?username="+Server.UrlEncode(oluser[n])+"'><font color=red>"+oluser[n]+"</font></a> ";
}
if (Application["guestnum"]!=null)
{
for (n=0;n<(Int32)Application["guestnum"];n++)
oluserstr=oluserstr+" <img src='images/guest.gif'> 客人 ";
}
onlineuser.Text =oluserstr;
}