codice:
<%
Response.buffer = True
Session("bLoginOK") = true
dim ut
ut = Session("LoginOK")
bShowPopUp = True
sWhoIsOnlinePage = "whoisonlinetest.asp"
sActiveUsersPath = "/activeusers/"
intActiveUserTimeout = 15
intActiveUserCleanupTime = 1
Session.LCID = 1040
Dim bShowPopUp
Dim sWhoIsOnlinePage
Dim sActiveUsersPath
Dim intActiveUserCleanupTime
Dim intActiveUserTimeout
Call LogActiveUser()
Call ActiveUserCleanup()
Function sNewUserIP(IP)
' On error resume next
Dim Tmp, i, sNewIP
Tmp = split(IP,".", -1, 1)
i = 0
do until i = Ubound(tmp) +1
If i = 2 Then
sNewIP = sNewIP & String(len(tmp(2)), "x") & "." ' "xxx."
Else
sNewIP = sNewIP & tmp(i) & "."
End if
i = i + 1
loop
erase Tmp
If len(sNewIP) > 0 then
sNewIP = left(sNewIP, Len(sNewIP)-1)
else
sNewIP = "(unknown)"
end if
sNewUserIP = sNewIP
End Function
'============= Log Active Users =======================================
Sub LogActiveUser
Dim strActiveUserList
Dim intUserStart, intUserEnd
Dim strUser
Dim strDate
Dim inStart
strActiveUserList = Application("ActiveUserListLog")
inStart = Instr(1, strActiveUserList, Session.SessionID)
If inStart > 0 Then
Application.Lock
intUserStart = Instr(inStart, strActiveUserList, "_Page")+5
intUserEnd = Instr(intUserStart, strActiveUserList, "|")
strUser = Mid(strActiveUserList, intUserStart, intUserEnd - intUserStart)
strActiveUserList = Replace(strActiveUserList, strUser, request.servervariables("path_info") & "?" & request.querystring & ":" & Now())
Application("ActiveUserListLog") = strActiveUserList
Application.UnLock
Else
Application.Lock
Application("ActiveUsersLog") = CInt(Application("ActiveUsersLog")) + 1
Application("ActiveUserListLog") = Application("ActiveUserListLog") & Session.SessionID &_
"_IP" & Request.ServerVariables("REMOTE_ADDR") &_
"_From" & UCase(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")) &_
"_Logon" & Now() &_
"_Page" & request.servervariables("path_info") & "?" & request.querystring &_
":" & Now() & "|"
Application.UnLock
End If
End Sub
'============= Clean Up Active Users=======================================
Sub ActiveUserCleanup
Dim ix
Dim intUsers
Dim strActiveUserList
Dim aActiveUsers
If Application("ActiveUserListLog") = "" Then Exit Sub
If DateDiff("n", Application("ActiveUsersLastCleanup"), Now()) > intActiveUserCleanupTime Then
Application.Lock
Application("ActiveUsersLastCleanup") = Now()
Application.Unlock
intUsers = 0
strActiveUserList = Application("ActiveUserListLog")
strActiveUserList = Left(strActiveUserList, Len(strActiveUserList) - 1)
aActiveUsers = Split(strActiveUserList, "|")
For ix = 0 To UBound(aActiveUsers)
On error resume next
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
On error goto 0
Next
strActiveUserList = Join(aActiveUsers, "|") & "|"
strActiveUserList = Replace(strActiveUserList, "XXXX|", "")
Application.Lock
Application("ActiveUserListLog") = strActiveUserList
Application("ActiveUsersLog") = intUsers
Application.UnLock
End If
End Sub
'============= Display Who is Online List =====================================
Sub ShowActiveUsersList ()
Dim ix
Dim intUsers
Dim strActiveUserList
Dim aActiveUsers
Dim count, conn, rs, bgclr
Dim sUserIP, sFrom, sPage, sUserID, sLastIn, sAtime, sLogon
response.write "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><tr><td>"
response.write "<b style=""font-size:10px;font-family:verdana;color:#999999;"">http://" & request.servervariables("HTTP_HOST") & " - Utenti attivi in questo momento (" & Now() & ")[/b]"
response.write "</td></tr></table>"
response.write "<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 style=""border: 1px Solid #6699CC;""><tr><td>"
response.write "<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=2 style=""font-size=11px;font-family:tahoma;"" width=""100%"" BGCOLOR=WHITE>"
Response.Write "<tr bgcolor=#dcdcdc>"
Response.Write "<td align=center>Matricola</td>"
Response.Write "<td align=center>Indirizzo IP</td>"
Response.Write "<td align=center>Da</td>"
Response.Write "<td align=center>Login</td>"
Response.Write "<td align=center>Update</td>"
Response.Write "<td align=center>Tempo</td>"
Response.Write "<td align=center>[b]Pagina attiva[b]</td>"
Response.Write "</tr>"
On error resume next
count=0
strActiveUserList = Application("ActiveUserListLog")
strActiveUserList = Left(strActiveUserList, Len(strActiveUserList) - 1)
aActiveUsers = Split(strActiveUserList, "|")
For ix = 0 To UBound(aActiveUsers)
sUserID = Mid(aActiveUsers(ix), 6, Instr(1, aActiveUsers(ix), "_IP")-6)
sUserIP = Mid(aActiveUsers(ix), Instr(1, aActiveUsers(ix), "_IP")+3, Instr(1, aActiveUsers(ix), "_From")-5-Instr(1, aActiveUsers(ix), "_IP")+2)
sFrom = Mid(aActiveUsers(ix), Instr(1, aActiveUsers(ix), "_From")+5, Instr(1, aActiveUsers(ix), "_Logon")-5-Instr(1, aActiveUsers(ix), "_From"))
sLogon = Mid(aActiveUsers(ix), Instr(1, aActiveUsers(ix), "_Logon")+6, Instr(1, aActiveUsers(ix), "_Page")-6-Instr(1, aActiveUsers(ix), "_Logon"))
sPage = Mid(aActiveUsers(ix), Instr(1, aActiveUsers(ix), "_Page")+6, Instr(1, aActiveUsers(ix), ":")-6-Instr(1, aActiveUsers(ix), "_Page"))
sLastIn = FormatDateTime(Mid(aActiveUsers(ix), Instr(1, aActiveUsers(ix), ":") + 1, Len(aActiveUsers(ix))), vbLongTime)
sAtime = DateDiff("n", sLogon, Now())
sLogon = FormatDateTime(sLogon, vbLongTime)
If count Mod 2 = 0 Then bgclr = "#F6F6F6" Else bgclr = "#EFEFEF" End if
count=count+1
Response.Write "<tr bgcolor=" & bgclr & ">"
Response.Write "<td align=center>" & ut & "</td>"
If Session("bLoginOK") Then
'Response.Write "<td align=center>"& sUserIP & "</td>"
Response.Write "<td align=center>"& sUserIP & "</td>"
Else
Response.Write "<td align=center>" & sNewUserIP(sUserIP) & "</td>"
End if
Response.Write "<td align=center>" & sFrom & "</td>"
Response.Write "<td align=center>" & Replace(sLogon, ".", ":") & "</td>"
Response.Write "<td align=center>" & Replace(sLastIn, ".", ":") & "</td>"
Response.Write "<td align=center>" & sAtime & " Mins</td>"
Response.Write "<td align=center>" & sPage & "</td>"
Response.Write "</tr>"
Next
On error goto 0
Response.Write "</table>"
response.write "</td></tr></table>
"
If right(Request.serverVariables("SCRIPT_NAME"), len(Request.serverVariables("SCRIPT_NAME")) - instrrev(Request.serverVariables("SCRIPT_NAME"), "/")) <> "activeuserstest.asp" AND bShowPopUp Then
response.write "<table width=""100%"" height=""100%"" border=0 cellspacing=0 cellpadding=0><tr><td align=center valign=bottom>"
'response.write "<input type=""button"" onclick=""self.close()"" value=""Close Window"" style=""font-size:11px;"">
"
response.write "</td></tr></table>"
End if
End Sub '--- ShowActiveUsersList
'============= Display Active Users Number ======================================
Sub ShowActiveUsersNumber ()
response.write "<table border=0 cellspacing=0 cellpadding=0 bgcolor=""#FFFFFF"" style=""font-size:11px;font-family:verdana;""><tr><td>"
If bShowPopUp Then
response.write "Users online: "
Else
response.write "Users online: "
End if
response.write "</td><td style='color:red;FONT-SIZE: 8pt; FONT-FAMILY: Tahoma, Arial, Helvetica;'>" & Application("ActiveUsersLog") & "</td></tr></table>"
End Sub '--- ShowActiveUsersNumber
%>