深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

用asp显示当前在线用户信息,不是简单只显示人数那种?/H1>
March 25,2004

东子 于 00-9-3 上午 02:35:55 发表在:ASP地带

global.asa 放在你的根目录
<object runat="Server" scope="Application"
id="rstActiveUsers" progid="ADODB.Recordset">
</object>

<script language="VBScript" runat="Server">
' The first thing you should notice is the top line.
' It creates an application scoped recordset object
' named rstActiveUsers that I'll use to store all
' our user information.
'
' Note: I've wrapped it for readability

Sub Application_OnStart()
    ' Selected constants from adovbs.inc
    Const adInteger = 3
    Const adVarChar = 200
    Const adDate = 7
   
    ' Here I set up in memory active user recordset
    ' by adding the fields I want to it and defining
    ' their data types.
    rstActiveUsers.Fields.Append "id", adInteger
    rstActiveUsers.Fields.Append "ip", adVarChar, 15
    rstActiveUsers.Fields.Append "browser", adVarChar, 255
    rstActiveUsers.Fields.Append "started", adDate

    ' Next I open our recordset so that we can use it.
    ' That basically gets everything ready for our
    ' first user.
    rstActiveUsers.Open
End Sub

Sub Session_OnStart()
    ' Set session timeout to 20 minutes
    Session.Timeout = 20

    ' Set a session start time.  This is pretty pointless,
    ' but it does ensure that we start a session and
    ' assign the user a session id and it can help
    ' troubleshooting if we ever need it.
    Session("Start") = Now()
   
    ' Move to the end so records are added in order.
    ' Again not of any real importance, but it keeps our
    ' user table nice and orderly.
    If Not rstActiveUsers.EOF Then rstActiveUsers.MoveLast

    ' Add a record and insert users data.  I'm just
    ' storing some basic info, but naturally you're free
    ' to store whatever you want.
    rstActiveUsers.AddNew
   
    rstActiveUsers.Fields("id").Value = _
        Session.SessionID
   
    rstActiveUsers.Fields("ip").Value = _
        Request.ServerVariables("REMOTE_HOST")
   
    rstActiveUsers.Fields("browser").Value = _
        Request.ServerVariables("HTTP_USER_AGENT")
   
    rstActiveUsers.Fields("started").Value = _
        Now()
   
    rstActiveUsers.Update
   
    ' Now that we've got the information, all that's
    ' left is to display it.  See test_page.asp for a
    ' demo.  It includes the pages show_count.asp and
    ' show_users.asp which can also be used
    ' individually if desired.
End Sub

Sub Session_OnEnd()
    ' Selected constants from adovbs.inc
    Const adSearchForward = 1
    Const adBookmarkFirst = 1
    Const adAffectCurrent = 1

    ' Find the appropriate record.  Using session id is the
    ' easiest way since I use this as the primary key.
    ' This line positions us on the appropriate record.
    rstActiveUsers.Find "id = " & Session.SessionID, _
        0, adSearchForward, adBookmarkFirst
   
    ' Now that we're on the record, delete it.
    ' I use the EOF to make sure we've got one.
    If Not rstActiveUsers.EOF Then
        rstActiveUsers.Delete adAffectCurrent
    End If
End Sub
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved