Avatar billede madsens90 Praktikant
14. januar 2010 - 10:47 Der er 7 kommentarer og
1 løsning

Script til "logget ind" brugere (har login system), hvordan laves det smartest og nemmest?

Hej Eksperter!

Jeg har for nyligt lavet en tagwall på min side som et lille programmerings projekt for at udvide min viden, og hvis i har lyst, kan i følge med her: www.shax.dk

På tagwallen skal man kunne skrive :online og få vist de online brugere, og det med at skrive så det kommer frem har jeg lavet, problemet er at der ingen steder i min MySQL står hvem der er logget ind!?

Hvordan laver man smartest og nemmest så man kan se hvem der er logget ind?

Går ud fra man har en tabel i MySQL'en hvori man angiver en timestamp, noget IP, et brugernavn og ... ?

Og for (forhåbenlig) at gøre mit spørgsmål nemmere, kan jeg sagtens lave tabeller, og indsætte data, men hvordan skal jeg lave så brugere automatisk logger ud efter X antal tid, så når man tjekker online listen, er det kun de aktive brugere?

Når man logger ind nu er man bare logget ind næsten foraltid via sessions.

TAK FOR HJÆLPEN PÅ FORHÅND!
- Christian
Avatar billede stigma Nybegynder
14. januar 2010 - 10:59 #1
Der skal du se på noget der hedder CronJobs, som forespørger din siden hvert minut eller ligende.. Fordi man ikke nemlig ikke fyre et script af hvis en bruger lukker sin browser, så der ville det ikke være muligt at sætte brugeren til at være offline igen.

Men altså du har ret i, at du skal have et felt med brugeres IP, så du kan tjekke om de stadig er på siden med dit CronJob..

Et CronJob er faktisk bare en ekstern side der fyre et script af på din side med et vist interval.. :)

Håber det kunne bruges..
Avatar billede madsens90 Praktikant
14. januar 2010 - 11:10 #2
Kan måske bruges. Kigger på det om 2 sek. :)

Men der er vel nogen der skal kører scriptet?
Så kræver det ikke at der er nogen på siden? eller?

For jeg kunne sagtens lave et script hvor at den opdaterer databasen med et interval på 1 min, men problemet er hvordan man får scriptet til at tjekke om de stadig er online?

aaaah. Tror lige jeg kom på det.

Sætter man en timestamp hver gang brugeren opdaterer siden, og næste gang "CronJobbet" kører, så tjekker den om der er gået for lang tid siden sidste timestamp, og så smider den dem ud af DB'en igen? :D

That's perfekt. :D

You saved me.. haha. Kom med et svar. xD
Avatar billede majbom Novice
14. januar 2010 - 11:11 #3
-> #1 - hvorfor et cronjob?`og hvordan skulle det se ud?

-> #0 - du kunne lave en funktion der på hver side sætter et timestamp i databasen for den enkelte bruger - så hver gang en bruger åbner en underside på din side, vil den opdatere tiden.

for så at finde ud af hvem, hvormange osv. der er online, tjekker du på hvor dette timestamp er nyere end f.eks. 10min.
Avatar billede majbom Novice
14. januar 2010 - 11:12 #4
-> #2 - der kom du mig lidt i forkøbet...
Avatar billede madsens90 Praktikant
14. januar 2010 - 11:25 #5
tak alligevel splazz. ;)

Kender i ikke det når man bare lige skal have nogen til at hjælpe tankerne lidt på vej, og så kommer det hele af sig selv? :D

Det gjorde det i den her omgang. :)
Avatar billede madsens90 Praktikant
14. januar 2010 - 11:31 #6
Info til ham eller hende der skulle falde over dette spørgsmål:

Jeg har på min side en bruger ved navn Guest som alle kan logge ind på. Jeg kan ved at tilføje et random id til brugerens session, og i database tabellen "online_users", godt logge én guest ud, uden at logge dem alle sammen ud. :)
Avatar billede repox Seniormester
15. januar 2010 - 18:47 #7
Luk spørgsmålet?
Avatar billede madsens90 Praktikant
15. januar 2010 - 21:33 #8
beklager. :)
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