Avatar billede tryout Nybegynder
10. januar 2005 - 09:04 Der 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.
Avatar billede davidfossil Nybegynder
10. januar 2005 - 09:14 #1
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)
Avatar billede davidfossil Nybegynder
10. januar 2005 - 09:16 #2
DOH ! fuck

Jeg troede jeg skrev svar til et ASP spørgsmål - beklager!
Er vist lidt morgentræt, og landede åbenbart i PHP i stedet...

Anyways, fremgangsmetoden er sikkert lidt den samme :o)
Avatar billede tryout Nybegynder
10. januar 2005 - 21:57 #3
Okay ;)

Men kan du ikke forklare hvad glabal.asa eller skulle det være .asp?

Hvad betyder subs?

Er application navnet på en function man selv skal lave? eller er det noget ASP?

Og hvordan opdager man at brugerne hopper fra hvis de ikke logger af men bare lukker browseren?
Avatar billede davidfossil Nybegynder
12. januar 2005 - 08:12 #4
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? :)
Avatar billede tryout Nybegynder
12. januar 2005 - 08:58 #5
Det er okay, du skal have tak for hjælpen alligevel.
Avatar billede tryout Nybegynder
23. februar 2007 - 16:35 #6
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester