Código fuente de 'Usuarios activos.asp'

<html>
<head>
<title>Contador de usuarios ASP. Usuarios activos. Códigos asp, programacion asp, descargas asp, rutinas asp</title>
</head>
<body style="font-family: Arial; font-size: 9pt">
<p align="center"><b><font size="3">Usuarios activos</font></b></p>
<%
Sub LogActiveUser
            Dim strActiveUserList
            Dim intUserStart, intUserEnd
            Dim strUser
            Dim strDate

            strActiveUserList = Application("ActiveUserList")

        If Instr(1, strActiveUserList, Session.SessionID) > 0 Then
            Application.Lock
            intUserStart = Instr(1, strActiveUserList, Session.SessionID)
            intUserEnd = Instr(intUserStart, strActiveUserList, "|")
            strUser = Mid(strActiveUserList, intUserStart, intUserEnd - intUserStart)
            strActiveUserList = Replace(strActiveUserList, strUser, Session.SessionID & ":" & Now())
            Application("ActiveUserList") = strActiveUserList
            Application.UnLock
        Else
            Application.Lock
            Application("ActiveUsers") = CInt(Application("ActiveUsers")) + 1
            Application("ActiveUserList") = Application("ActiveUserList") & Session.SessionID & ":" & Now() & "|"
            Application.UnLock
        End If
End Sub



Sub ActiveUserCleanup
Dim ix
Dim intUsers
Dim strActiveUserList
Dim aActiveUsers
Dim intActiveUserCleanupTime
Dim intActiveUserTimeout

intActiveUserCleanupTime = 1 'In minutes, how often should the ActiveUserList be cleaned up.
intActiveUserTimeout = 20 'In minutes, how long before a User is considered Inactive and is deleted from ActiveUserList

If Application("ActiveUserList") = "" Then Exit Sub

If DateDiff("n", Application("ActiveUsersLastCleanup"), Now()) > intActiveUserCleanupTime Then

    Application.Lock
    Application("ActiveUsersLastCleanup") = Now()
    Application.Unlock

    intUsers = 0
    strActiveUserList = Application("ActiveUserList")
    strActiveUserList = Left(strActiveUserList, Len(strActiveUserList) - 1)

    aActiveUsers = Split(strActiveUserList, "|")

For ix = 0 To UBound(aActiveUsers)
    If DateDiff("n", Mid(aActiveUsers(ix), Instr(1, aActiveUsers(ix), ":") + 1, Len(aActiveUsers(ix))), Now()) > intActiveUserTimeout Then
        aActiveUsers(ix) = "XXXX"
    Else
        intUsers = intUsers + 1
    End If 
Next

strActiveUserList = Join(aActiveUsers, "|") & "|"
strActiveUserList = Replace(strActiveUserList, "XXXX|", "")

    Application.Lock
    Application("ActiveUserList") = strActiveUserList
    Application("ActiveUsers") = intUsers
    Application.UnLock

End If

End Sub

%>

<%
Call LogActiveUser()
Call ActiveUserCleanup()

if Application("ActiveUsers")=1 then
Response.Write "1 usuario conectado" 
else
Response.Write  Application("ActiveUsers") & " usuarios conectados"
end if

%>
</body>

</html>