10. januar 2005 - 09:04Der er
5 kommentarer og 1 løsning
Onlineliste, login
Jeg kunne godt tænke mig, at det var muligt at se hvilke brugere der var online på min side(altså havde logget ind). Jeg har lavet et login script der virker, men har lidt svært ved at gennemskue hvordan man skal løse online problemet.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Uha, det er en af de sjove. Jeg gider ikke kode det for dig, men kan godt give dig noget at google efter :o)
Følgende løsning er en mulighed, men selvfølgelig langt fra den eneste løsning...
I global.asa skal du have tilføjet noget kode til følgende subs: Session_OnStart og Session_OnEnd
I OnStart indsætter du noget kode der gør følgende. Hent værdien for Application("OnlineUsers") og split den som et array. Tilføj den aktuelle bruges SessionID, join arrayet til en streng og gem det igen.
I OnEnd skal du (selvfølgelig): Hent værdien for Application("OnlineUsers") og split den som et array. Løb igennem arrayet og find det aktuelle SessionID, og fjern denne linje før du gemmer igen.
Nu har du så hele tiden en liste liggende som en Application variable, over hvilke sessions der er nogen online fra. I dit login script kan du tilføje en SQL-kommando der skriver ned i brugerdatabasen hvilken SessionID brugeren sidst er logget på med.
Når du vil udskrive listen over hvem der er online, kan du så blot løbe igennem din Application("OnlineUsers") og slå hvert enkelt SessionID op i databasen.
Som sagt kan det gøres på uendelig mange andre måder, dette var bare ét alternativ :o)
Ehm, det hele var sådan set ASP, så du må undskylde forvirringen.
Anyways i ASP kan man ved at definere en metode for Session_OnEnd i sin global.asa (som er en fil i roden af webapplikationen), køre noget kode hver gang en session slutter. Denne vil altså blive eksekveret hvis brugeren logger af (og session bliver dræbt), eller hvis session'en timer ud (normalt fordi brugeren blot har lukket vinduet).
I php såvel som i asp vil du så have problematikken med hvor lang din session timeout skal være. Du vil helst ikke have at folk bliver logget af fordi de lige stener over noget eller er på toilettet, men du ønsker heller ikke at folk som smuttede for en time siden står på listen.
Bruger du frames (hvilket jeg generelt IKKE vil anbefale) er det snildt nok, for så kan du bare lave en frame der opdaterer sig selv fx hvert anden minut, og så sætte timeout til 3 minutter. På den måde sikre du at alle aktive brugere (altså dem der har vinduet åbent) fortæller serveren at de stadig læser. Dette koncept dur bare ikke rigtigt uden frames... måske med en skjult iframe i en include fil, kunne man gøre det samme? :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.