Avatar billede lborkdk Nybegynder
22. oktober 2010 - 22:40 Der er 11 kommentarer og
1 løsning

logud efter x tid

Hej eksperten.dk

Jeg har lavet et velfungerende brugersystem indtil jeg stødte ind i denne fejl, jeg har nemlig lige fået gjort så man kunne se hvor mange som var online men så fandt jeg ud af at hvis folk bare lukkede siden ville den ikke logge af så jeg fik indsat denne kode på min login.php:

$query = mysql_query("UPDATE users SET timestamp='". mktime() ."' WHERE username='$username'");


Så er mit problem bare at jeg mangler et script som gør det at hvis timestamp en ikke er opdateret og bliver mere en 10 min gammel skal den logge brugeren af, det må da kunne lade sig gøre...(Jeg ved det kan...)

Skal lige siges at når den logger af så opdateret den et felt i databasen fra 1 til 0 så min online count kan se hvor mange som er online :D
Avatar billede majbom Novice
22. oktober 2010 - 23:00 #1
kan du ikke bare nøjes med at hente records hvor tiden er under f.eks. 10min "gammel" når du tæller online brugere?
Avatar billede lborkdk Nybegynder
22. oktober 2010 - 23:01 #2
det må være noget med at den skal tjekke timestamp og hvis den er 5 min gammel så skal den sette online til 0
Avatar billede lborkdk Nybegynder
22. oktober 2010 - 23:01 #3
kan du gi et eksempen? :)
Avatar billede cronaldo Nybegynder
23. oktober 2010 - 03:04 #4
1. Er dine brugernavne unikke? Ellers kan det give problemer at bruge username='$username'
2. Hvis de er unikke, ret til: username='".$username."'
2a. Hvis de ikke er unikke så benyt et unikt id
3. Umiddelbart kan du få alle brugere der er online / har været inden for de sidste 5 minutter ved hjælp af flg query:


mysql_query("SELECT * FROM users WHERE timestamp >= '".mktime()-(60*5)."' ORDER BY id DESC");


Jeg håber, det virker :o)
Avatar billede showsource Seniormester
23. oktober 2010 - 07:46 #5
eller
SELECT * FROM users WHERE (UNIX_TIMESTAMP()-timestamp) < 300 ORDER BY id DESC

Går ud fra at feltet timestamp er et unix timestamp ?
Avatar billede lborkdk Nybegynder
23. oktober 2010 - 11:31 #6
Ja feltet timestamp er unix timestamp :)

Tester lige om det virker om 15 min :)
Avatar billede lborkdk Nybegynder
23. oktober 2010 - 11:55 #7
Kan ikke få det til at virke :(
Avatar billede lborkdk Nybegynder
23. oktober 2010 - 12:23 #8
Så fik det til at virke :)

Smid et svar cronaldo.
Avatar billede lborkdk Nybegynder
24. oktober 2010 - 12:54 #9
hvad gør man vis der ikke bliver smit et svar?

Tar man dem selv??
Avatar billede majbom Novice
24. oktober 2010 - 19:11 #10
beder om et svar???
Avatar billede cronaldo Nybegynder
28. oktober 2010 - 15:39 #11
Jeg samler ikke på point - bare du får det til at virke :o)
Avatar billede lborkdk Nybegynder
30. oktober 2010 - 09:22 #12
okay tak :)
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