Nej, du måste använda global.asa och session_onend för att veta när en session dör.
hur ka jag modifiera global.asa för att få önskat resultat?
min global.asa är nu
<script language="vbscript" runat="server">
Sub Application_OnStart
Session.TimeOut=1
Application("visitors")=0
End Sub
Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub
</script>
I session_onend kan du ställa en SQL-fråga med sessionid som villkor. Detta kräver förstås att du lagrar sessionid i tabellen du ska uppdatera.
Ett annat sätt är att man uppdaterar en aktivitetskolumn i användartabellen med datum och tid varje gång en sida exekvers, och för online-listan använder detta datum/tid-fält som villkor.
Session.timeout behöver du inte ha, och den ifsatsen du visade fungerar inte. När du kommer till session_onend så tar sessionen slut, det behöver du inte kontrollera.
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
SET objConn = connect()
objConn.Execute("Update tblUsers SET inloggad = False, Chattar=False WHERE userID="&Session("userID")&"")
objConn.Close
Set objConn = nothing
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
SET objConn = connect()
objConn.Execute("Update tblUsers SET inloggad = False, Chattar=False WHERE userID="&Session("userID")&"")
objConn.Close
Set objConn = nothing
Jag är inte säker, men jag tror inte att det kommer att fungera, din Session("UserID") kommer inte att ha något värde, eftersom sessionen gått ut. altså värdet kommer vara WHERE userID=""
Dvs blankt, om jag inte missuppfattat session_OnEnd
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
SET objConn = connect()
objConn.Execute("Update tblUsers SET inloggad = False, Chattar=False WHERE userID="&Session("userID")&"")
objConn.Close
Set objConn = nothing
Jag är inte säker, men jag tror inte att det kommer att fungera, din Session("UserID") kommer inte att ha något värde, eftersom sessionen gått ut. altså värdet kommer vara WHERE userID=""
Dvs blankt, om jag inte missuppfattat session_OnEnd
Kommer inte på nåt bra sätt att med sql-satsen logga ut just DEN inaktive användaren
Det finns andra lösningar till detta än Global.asa, men om man får till det o fungera tror jag det är den mest effektiva.
Men om jag förstått @nders ska du på något sätt lagra session.sessionID i databasen, i samma tabell som du har kolumnen 'inloggad', och genom den joxxa o trixa och lira lite grann. Men hur, vet jag faktiskt inte :)
313 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e