Jag har hört att Session_OnEnd i global.asa nästan aldrig funkar. Och då känns det lite dumt att bygga ett system på det.
Jag vill kunna hålla koll på vilka som är inloggade, har ni då något annat tips på hur man kan lösa det?
Ska man ha en dold frame som hela tiden uppdateras varannan minut och ändrar ett datumfält till "Now" och sen ser man vilka som är inloggade genom att kolla vilka som har ett datum inte längre tillbaka än 3 minuter?
Det var väl ungefär så jag tänkt att göra. Men eftersom att Session_OnEnd funkar så uselt så är det en kass lösning. Jag litar inte på att användaren klickar på logga ut.
Jag har fibblat med samma sak och gav upp global.asa ganska omgående.
Jag gjorde en ny tabell där jag hade fälten strUsername och dteDate. Sedan gjorde jag en INSERT och DELETE på varje sida. Om strUsername (lagrad i en session som skapas vid lyckad inloggning) finns, lagrades den i databasen tillsammans med datum/tid. Sedan en DELETE som tar bort alla poster i databasen som är äldre än 10 min.
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
Du uppdaterade alltså det fältet var femte minut?
Det var ju ungefär så jag menade i mitt första inlägg. Men prestandamässigt känns det ganska dåligt. :l
När en inloggad besökare (en besökare som innehar en session/kaka) kommer till en sida kör jag följande:
(anpassad för Mysql)
If cint(Request.kookies("Login")("AnvId")) > 0 Then
AnvId = Request.kookies("Login")("AnvId")
Username = Request.kookies("Login")("Username")
SQLStmt ="INSERT INTO Active "
SQLStmt = SQLStmt & "(AnvId, Username, ActiveDate) "
SQLStmt = SQLStmt & "VALUES("& AnvId &", '"& Username &"', Now())"
objDB.Execute SQLStmt,,128
'## -- Ta bort alla som varit inaktiva mer än 10 minuter --
strSQL = "DELETE FROM Active WHERE ActiveDate < SUBDATE(NOW(),INTERVAL 10 MINUTE)"
objDB.Execute strSQL,,128
End If
Denna koden ligger på samtliga sidor i mitt forum. Sedan när jag presenterar vilka som är online hämtar jag alla och loopar ut dem grupperade efter Username.
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?