webForumDet fria alternativet

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

ASP

3 svar · 173 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#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?

------------------
Alltid lär man sig något nytt varje dag...

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.

------------------
essentitia preter non sans multiplicandum

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?)

------------------
Alltid lär man sig något nytt varje dag...

Medlem sedan dec. 200012 464 inlägg
#4

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

------------------
essentitia preter non sans multiplicandum

260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)