Newsgroup: it.comp.www.asp
Titolo: ASP - Numero utenti nel sito

Ciao a tutti,
ho realizzato un sito completamente in ASP.
Volevo inserire una funzione per calcolare il numero di visitatori che sono 
correntemente all'interno del sito.
E' possibile farlo? se si c'è qualcuno che può darmi  qualche dritta?
Come posso, inoltre, azzerare le variabili "Session" dopo un certo tempo 
(ad. es. 10 minuti)?
Ringrazio tutti in anticipo.
Ciao
Emiliano 

 tempo (ad. es. 10 minuti)?
si azzerano da soli in base alla configurazione del webserver... in genere
10 - 20 min.
-- 
Lino Mari
http://www.ebow.it
 - e-business on web!
http://www.ebow.it/blog/
 - Mktg Log
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004

 Emiliano
Session.Timeout=10
Lo puoi inserire nel global.asa:
sub Session_OnStart()
  Session.Timeout=10
end sub
Ciao
-- 
AZ [Microsoft - .NET MVP]
Mia Home page: 
http://ciclismo.sitiasp.it
Asp.Net community: 
http://www.aspitalia.com
Il mio blog: 
http://blogs.aspitalia.com/az
 

 Emiliano
Eccoti uno script bell'e pronto!
Si occupa già di verificare se gli Utenti sono più d'uno o meno.
Per le session.... impostane il timeout con il valore che desideri: per es.
session.timeout=10 (il numero indica i minuti)
Divertiti!!! Ciao
Stefano
<%
' Option Explicit
Sub LogActiveUser
 Dim strActiveUserList
 Dim intUserStart
 Dim 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 = 3 'In minutes, how long before a User is considered
Inactive and is deleted from ActiveUserList
 If Application("ActiveUserList") = "" Then
  Exit Sub
 End If
 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 "<br>al momento c'è <b>1</b> Utente connesso<br>"
else
 Response.Write "<br>al momento ci sono <b>" & Application("ActiveUsers") &
"</b> Utenti connessi<br>"
end if
%>

 Stefano
Grazie Stefano,
funziona alla perfezione!! l'ho inserito cosi come me lo hai dato ed è 
andato tutto ok.
Grazie
Emiliano