Besuchszähler aus der GLOBAL.ASA
Jan Riedel
- asp.net
Hallo Leute,
kann ich auch ihrgendwie anders die Anzahl der akutell auf der Seite befindlichen Besucher zählen, als mit der GLOBAL.ASA zu arbeiten (on_session_start / end).
Das Problem ist ja, dass das nur funzt, wenn man einen Web-Server komplett für sich alleine hat ... :-( ... Hab ich zwar gerade, aber nicht immer ... ;)
Gruß,
Jan
Hallo Jan!
Die global.asa muss eigentlich für jeden Webspace unterschiedlich sein, da sonst eine ganze Reihe von Möglichkeiten, die von der global.asa aus unterstützt werden, nicht zur Verfügung stehen. Man kann darüber hinaus sogar mehrere glabal.asa's verwenden (frag mich jetzt nur nicht wie!).
Gruß,
Daniel
in der microsoft IIS newsgroup hat jemand vor einiger zeit das hier gepostet. habs selber nicht getestet. bei mir wuerde sowieso immer nur 1 dortstehen ;-)
------------------------------
du benotigst eine datenbank mit den mit zwei feldern! (bei mir Sessions &
TrackDate)
diese sollte sich in einem Verz. befindet in welchem schreibrechte gestetzt
sind.
jetzt benoetigts du nur noch folgendes Script:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
On Error Resume Next
Sub Application_OnStart
Application("ActiveUsers") = 0
End Sub
Sub Session_OnStart
Dim SQL, RS, oConn, TotalSessions, TodaySessions
Dim DBDriver, DBPath, DBUser, DBPass
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DSN=nxs-ecards"
SQL = "Select Sessions From Sessions Where TrackDate = '" & Date() & "'"
Set RS = oConn.Execute(SQL)
If RS.EOF Then
NewTotal = 1
SQL = "Insert Into Sessions (TrackDate, Sessions) "
SQL = SQL & "Values ('" & Date() & "', " & NewTotal & ")"
Else
NewTotal = CInt(RS("Sessions")) + 1
SQL = "Update Sessions Set Sessions = " & NewTotal & " "
SQL = SQL & "Where TrackDate = '" & Date() & "'"
End If
Set RS = Nothing
oConn.Execute(SQL)
SQL = "Select Sum(Sessions) As TotalSessions From Sessions"
Set RS = oConn.Execute(SQL)
TotalSessions = RS("TotalSessions")
Set RS = Nothing
SQL = "Select Sessions From Sessions "
SQL = SQL & "Where TrackDate = '" & Date() & "'"
Set RS = oConn.Execute(SQL)
TodaySessions = RS("Sessions")
Set RS = Nothing
oConn.Close
Set oConn = Nothing
Session.Timeout = 10
Session("Start") = Now
Application.Lock
Application("TotalSessions") = TotalSessions
Application("TodaySessions") = TodaySessions
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.Unlock
End Sub
Sub Session_OnEnd
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub
</SCRIPT>
------------------------------------
auf einer anderen seite hab ich mal dieses script gefunden:
------------------------------------
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
On Error Resume Next
Sub Application_OnStart
Application("ActiveUsers") = 0
End Sub
Sub Session_OnStart
Dim SQL, RS, oConn, TotalSessions, TodaySessions
Dim DBDriver, DBPath, DBUser, DBPass
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DSN=nxs-ecards"
SQL = "Select Sessions From Sessions Where TrackDate = '" & Date() & "'"
Set RS = oConn.Execute(SQL)
If RS.EOF Then
NewTotal = 1
SQL = "Insert Into Sessions (TrackDate, Sessions) "
SQL = SQL & "Values ('" & Date() & "', " & NewTotal & ")"
Else
NewTotal = CInt(RS("Sessions")) + 1
SQL = "Update Sessions Set Sessions = " & NewTotal & " "
SQL = SQL & "Where TrackDate = '" & Date() & "'"
End If
Set RS = Nothing
oConn.Execute(SQL)
SQL = "Select Sum(Sessions) As TotalSessions From Sessions"
Set RS = oConn.Execute(SQL)
TotalSessions = RS("TotalSessions")
Set RS = Nothing
SQL = "Select Sessions From Sessions "
SQL = SQL & "Where TrackDate = '" & Date() & "'"
Set RS = oConn.Execute(SQL)
TodaySessions = RS("Sessions")
Set RS = Nothing
oConn.Close
Set oConn = Nothing
Session.Timeout = 10
Session("Start") = Now
Application.Lock
Application("TotalSessions") = TotalSessions
Application("TodaySessions") = TodaySessions
Application("ActiveUsers") = Application("ActiveUsers") + 1
Application.Unlock
End Sub
Sub Session_OnEnd
Application.Lock
Application("ActiveUsers") = Application("ActiveUsers") - 1
Application.UnLock
End Sub
</SCRIPT>