webForumDet fria alternativet

Hålla koll på inloggade

ASP

9 svar · 191 visningar · startad av Erik Juhlin

Medlem sedan maj 200010 687 inlägg
Frågan#1

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?

Något annat tips?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan sep. 2001354 inlägg
#2

DU kan juh fixa det med databas men då måste de alltid logga ut och inte bara stänga fösnstret för att det ska funka...

Gör så att näör någon loggar in så + du på en sifra i en tab4ll sedan bara skriver du ut inne hållet ur den...

Sedan tar du bort en när han loggar ut...

------------------
Har ingen just nu, har du någon idee???

Medlem sedan maj 200010 687 inlägg
#3

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.

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan feb. 20012 412 inlägg
#4

Hej Erik!

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?

[Redigerat av jorgen den 28 okt 2001]

Medlem sedan maj 200010 687 inlägg
#5

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

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan feb. 20012 412 inlägg
#6

Hej!

Nej, jag uppdaterar inte.

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?

Medlem sedan maj 200010 687 inlägg
#7

Jo, men det är väl ändå så att du hela tiden uppdaterar ett fält i databasen så fort en användare gör något/går till en sida..?

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan feb. 20012 412 inlägg
#8

Hej!

Jag gör en INSERT varje gång, ja!

Psst. Kommer du på en bättre fungerande lösning så hojta ;)

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 28 okt 2001]

Medlem sedan maj 200010 687 inlägg
#9

Får väl göra det, men när man tänker på prestandan så gör det ont i själen. :l

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

Medlem sedan maj 200010 687 inlägg
#10

Men i.o.f.s. så förlitar man sig då inte på Microsofts sunkiga Session_OnEnd och man vet att det funkar. :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

280 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
145 ms — ändringar (db)