Avatar billede exo Nybegynder
24. marts 2004 - 15:26 Der er 9 kommentarer

Spørgsmål om tid. (PHP)

Hej allesammen!

Nu har jeg arbejdet mange mange timer på det her og kan ik finde en løsning.

Jeg har lavet et brugersystem hvor brugernes tid bliver gemt i en database. Men problemet er at den først gemmer tiden når brugere logger ud, kig evt. her:

brugernavn: eksperten
kodeord: eksperten

http://php.users.whitehat.dk/rpg/logind.php

Har før lavet det sådan at den opdatere brugerens tid hvert sekund, men så opdaterede den 1 ind i databasen hver gang man trykker "refresh (F5)" som den jo ikke skal.

Skal ikke bruge nogen færdig kode/scripts skal bare have det tekniske på plads. HVORDAN kan man gøre sådan at den sætter 1 sekund ind i databasen hver sekund?

Sætter pris på svar med grundig forklaring.

mvh. Exo!
Avatar billede sukos Juniormester
24. marts 2004 - 15:29 #1
Der er vel ingen grund til at konstant opdatere DB hvert sekund?
Men kun når en bruger requester en side?
Avatar billede exo Nybegynder
24. marts 2004 - 15:33 #2
Det har du ret i...
Hvordan kan jeg gøre? har prøvet alt.. tro mig har arbejdet meget med det efterhånden :)
Avatar billede sukos Juniormester
24. marts 2004 - 15:38 #3
Med sessions eller ved at sætte en cookie.

Ved load af siden, sættes en session, med f.eks. værdien time()
Ved hver request, tjekker du om en bestemt session er sat, den med time(), og er den det, så sætter du en ny session, igen med time().
Den nye session opdateres ved hver request.
På den måde kan du få to sessions at arbejde med, login og sidste request.

Bøffen ligger jo så i at en bruger evt. blot lukker vinduet ned i stedet for at bruge logud, så du faktisk ikke ved hvornår en bruger sidst var på siden. :O)
Avatar billede exo Nybegynder
24. marts 2004 - 15:42 #4
Hmm ja det hat du ret i, det er en måde jeg kunne gøre det på.. hmm... det må jeg tænke lidt over..

Jeg ved det godt har tænkt over det og har fixet at når vinduet lukker kommer der en popup der automatisk smider brugeren af og lukker sig selv igen. Men den har jeg dog ik sat på endnu selvom jeg har fixet den :)
Avatar billede sukos Juniormester
24. marts 2004 - 15:48 #5
jahh, det var jo en måde, omend der jo også er mange som har et program som netop hindrer pop-ups.
Bruger f.eks. selv Netscape af selvsamme årsag, bl.a., og her vil det ikke virke.

Bedste vil nok være at sætte en "udløbstid", d.v.s., hvis f.eks. det er over 5 min. siden at brugeren har klikket på et link, så opdater DB med den info du har (+ 5 min), og start derefter forfra igen.
Avatar billede exo Nybegynder
24. marts 2004 - 15:59 #6
Hey det var faktisk en ret god idé det vil jeg tilføje her senere :D
Men det med tiden er stadigvæk et problem. Men vil prøve at lege lidt med de sessions senere... Har du andre idéer til at forbedre systemet?
Avatar billede sukos Juniormester
24. marts 2004 - 16:12 #7
hmm, du kan jo bruge en DB til at holde styr på det hele.
Så selvom en bruger IKKE logger ud, kan denne brugers samlet tid opdateres alligevel.
Så skal der ved hver request opdateres/slettes fra DB, uanset brugernavn.
Avatar billede exo Nybegynder
22. maj 2004 - 19:15 #8
lav svar tak!
Avatar billede sukos Juniormester
22. maj 2004 - 21:26 #9
Kan jeg da godt!
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