Jag ska bygga en online - offline statusgrej med hjälp av en flagga i databasen. För att veta när jag ska flagga dem offline även om de inte loggat ut korrekt så har jag satt lite kod i session_onEnd. Många olika turer har det blivit för att slutligen landa i en sån här lösning:Problem med session_onEnd
LoggedOut = Application("loggedOutApp")
If LoggedOut <> "" Then LoggedOut = LoggedOut & ","
LoggedOut = LoggedOut & Session("userId")
i global.asa.
Tanken är att för varje avslutad session skall användarens användarId som finns i en session läggas in i en textsträng (matriser fungera inte bra) med ett "," mellan.
Sedan har jag en includefil som ligger i nästan varje sida där jag kör denna kod:
Dim Indexer
application.lock
loggedOutArray = Split(Application("loggedOutApp"), ",")
application.UnLock
For Indexer = LBound(loggedOutArray) To UBound(loggedOutArray)
SQL = "UPDATE users SET online = 0 WHERE userId = " & loggedOutArray(i)
SET results = conn.Execute(SQL)
next
erase loggedOutArray
Personligen ser jag bara hur vattentät denna lösning är, men den verkar inte stoppa in något på varken session.abandon eller när jag sätter session.timeout = 1 och väntar.
Är det någon som kan skänka lite ljus i denna grotta av problem?
// christian //