Hur får man bort "spöken" från online-listan?

ASP

3 svar · 187 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Trådstart#1

Jag sätter en session på varje person som loggar in och sparar denna i application, men ett vanligt problem verkar vara att On_sessionEnd inte alltid körs i global.asa, dvs denna kod i mitt fall:

Sub Session_OnEnd()
	' Selected constants from adovbs.inc
	Const adAffectCurrent = 1

	' Start at the first record
	rstActiveUsers.MoveFirst
	
	' Check each record for the SessionID
	Do While Not rstActiveUsers.EOF
		' Do conversion to Long to be sure we're
		' comparing the same data type.
		If CLng(rstActiveUsers.Fields("id").Value) = _
			CLng(Session.SessionID) Then
			rstActiveUsers.Delete adAffectCurrent
		End If
		
		rstActiveUsers.MoveNext
	Loop
	
	rstActiveUsers.Update
End Sub

Hur får jag bort en person som inte loggat ut korrekt?

Medlem sedan dec. 200012 464 inlägg
#2

Du får lägga till en timestamp för varje session i application. Sen så får du uppdatera den timestampen när du får ett request för den sessionen.

Sen kan man t.ex. vid session_ontstart gå igenom application och rensa ut alla som har en timestamp som är äldre än den timeout du har satt för sessionen.

Medlem sedan maj 20011 312 inlägg
#3

Tack, LarsG...ska fundera lite på hur man kan lägga upp det...vad är förresten en Timestamp? (Jag förstår ungefär vad det är men inte riktigt hur det fungerar, är det en applikationsvariabel eller?)

Medlem sedan dec. 200012 464 inlägg
#4

Jaha jag menar värdet av now() dvs både datum och tid.

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)