/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Global.asa og Session_OnEnd
Fra : Dan Frederiksen [DJ ~


Dato : 27-05-01 17:55

Hey Folkens,

Jeg sidder med et HUGE PROBLEMO. Jeg er ved at lave et system, så man kan se
hvilke brugere der er online. Ikke hvor mange, men hvilke brugere der er
logget ind. Jeg var smart! Jeg satte en
Application("OnlineList") = ,
ved application_OnStart.
Og i login-formularen puttede jeg brugerens Id og et komme (Ex. 43,) oveni
Application("OnlineList") og satte samtigigt Session("bruger") = Brugerens
Id i databasen.

Når brugeren logger af nulstilles session, og for at fjerne brugeren igen
fra listen, indsætter man selvfølgelig en Replace kommando og replacer
brugerens id (Session("bruger")) og et komma (Ex. 45,) i
Application("OnlineList") - erstattes med ingenting.

Men det viser sig at koden i Session_OnEnd først udføres EFTER session'en er
lukket . Dvs. Session("bruger") er tom, og kun et komma står tilbage. Derfor
vil alle kommaer i listen fjernes.

Nogen der har nogle guldkorn til hvordan jeg løser mit problem?!

Dan Frederiksen



 
 
Lauritz Jensen (27-05-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 27-05-01 18:39

"Dan Frederiksen [DJ Dencker]" wrote:
>
> Jeg sidder med et HUGE PROBLEMO. Jeg er ved at lave et system, så
> man kan se hvilke brugere der er online. Ikke hvor mange, men
> hvilke brugere der er logget ind.

Min erfaring siger at session_onend er ganske upålidelig. De gange hvor
jeg har lavet sådan et system, har jeg haft en application variabel hvor
bruger-id'er har ligget sammen med et timestamp, eks:
">id1<tid1>id2<tid2"
Hver gang en bruger henter en side (eller første gang efter, der er gået
5 minutter efter sidste gang hun hentede en side), laver man en søgning
efter ">id<" fjerner det gamle entry og indsætter ">id<nytid" tilsidst.
En gang i kvarteret fjerner man så alle de elementer, der er blevet
ældre end 10 minutter (de står forest).
Det scallerer jo ikke til mere end ... hmm ... 100 brugerer. Nu om dage
ville jeg nok lave noget sjov med en prioritetskø. Hvis du har flere
brugerer, bliver du nok nød til at lægge det i databasen (det er heller
ikke noget problem, hvis du bruger access, men det kan jo komme til at
fylde i transaction loggen, hvis du bruger Sql Server)

--
Lauritz

Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste