Avatar billede -zonic- Nybegynder
23. august 2009 - 15:22 Der er 5 kommentarer og
1 løsning

hvem er logget ind script?

Hej eksperter,

jeg mangler lige lidt inspiration til hvordan jeg griber et script an som kan følgende i php5.:

- Andre brugere skal kunne se hvem der er logget ind.
- Brugerens session skal dø efter ex. en time.
- Når brugerens session dør, eller personen logger ud, skal denne selvfølgelig slettes fra listen..


noget i den dur...

hvordan laver man det mest korrekt.. og hvordan får man scriptet til at "mærke" hele tiden hvem der er logget ind og når de ryger ud, hvis ikke de selv logger af?

På forhånd tak!
Avatar billede webweaver Praktikant
23. august 2009 - 15:56 #1
Ville nok lave det med en database. Når man logger ind registreres det deri. Samme når man logger ud. Så sletter den linien igen. Og hvis der har været inaktivitet længe nok, slettes linien også.

På samme måde findes der en funktion til at slettes sessions med efter eget valg.

$old_sessionLifeTime = ini_set("session.gc_maxlifetime", "36000");
if (!$old_sessionLifeTime)
// Det var ikke muligt at ændre    session.gc_maxlifetime
echo "Session levetid kunne ikke ændres\n";
session_start();

36000 er sekunder.

Det virker dog ikke alle steder, afhængig af host indstillinger.
Det virker umiddelbart ikke hos Surftown fx. Der sletter den session efter 20 minutters inaktivitet ligemeget hvad, mener jeg det er.
Avatar billede henninghabor Nybegynder
23. august 2009 - 16:02 #2
Jeg tror det bedste vil være at lave en database hvor brugerens id og tidspunkt for login gemmes.

Hvis en bruger logger ud kan du slette posten i databasen. Da du ved hvor længe en session er i live, kan du vise de brugere hvor tidspunkt i database + antal sekunder session lever.

Jeg ved ikke hvor skrap du er til selv at lave dette, men hvis du har behov for det, må du lige sige til.
Avatar billede -zonic- Nybegynder
23. august 2009 - 17:29 #3
jeg har lavet et script tidligere, men synes ikke det er optimalt... det er lavet med en iframe der opdaterer hvert minut hvor brugeren holder linjen i db'en i live så længe han er på siden, men synes ikke det var optimalt med iframe, det er jo lidt noget snavs ;-) 

til gengæld opdateredes "hvem er online" hvert minut, hvilket jeg synes er mere hensigtsmæssigt end f.eks. at vente til sessionen dør ud efter f.eks. en time... så er billedet jo ikke særligt retvisende...

Jeg skal sikkert ud i noget php og ajax ?
Avatar billede webweaver Praktikant
23. august 2009 - 18:40 #4
Det er ikke optimalt nej!
Så skal den bare opdateres hver gang en bruger refresher sitet.
Afhængig af hvor mange brugere der er på sitet, kan dette virke.

Ellers skal du over i noget cronjob.
Avatar billede -zonic- Nybegynder
27. august 2009 - 16:01 #5
Nå, men tak for jeres svar, selvom det ikke hjalp meget :-)


Løsningen bliver noget ajax kombineret med php i stedet ala.:

http://www.vijayjoshi.org/2008/12/08/automatic-session-timeoutlogout-using-php-and-ajax/

men tak for jeres svar.. smid et...ehmm.. svar hvis I vil have point?
Avatar billede webweaver Praktikant
29. august 2009 - 01:10 #6
Godt du fandt en løsning :)
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