Avatar billede webstuff Nybegynder
18. december 2005 - 21:30 Der er 11 kommentarer og
1 løsning

hjælp til online liste

Hejsa

Jeg har et login system, med online liste.
Men den fungerer ikke rigtigt..
Når man logger ind, gør den det her:

$logud = date("d/m-y G:i");
mysql_query("UPDATE brugere SET onoff = 'on', logud = '$logud' WHERE brugernavn = '$user[brugernavn]'") or die(mysql_error());


og så har jeg de her sidden i toppen af hver siden:

mysql_query("UPDATE brugere SET onoff = 'off' WHERE DATE_ADD(logud,INTERVAL 10 MINUTE) < NOW()") or die(mysql_error());

Nogen der kan sige hvad der er galt??
Avatar billede fixxxer Nybegynder
19. december 2005 - 01:42 #1
Har du læst hvad jeg skrev i http://www.eksperten.dk/spm/670363 ?

Datoformatet d/m-y G:i kan _ikke_ skrives ind i en felt af typen DATE (logud)

Hvis feltet logud ikke er af typen DATE virker  DATE_ADD(logud,INTERVAL 10 MINUTE)
ikke!
Avatar billede webstuff Nybegynder
19. december 2005 - 19:08 #2
hvis man er online i mere end 10 minutter bliver man også sat til offline?
Avatar billede fixxxer Nybegynder
19. december 2005 - 19:29 #3
Nu er det jo svært at konkludere noget ud fra en lille smule script, taget ud af hele din side..

Men principet er:

Ved hvert besøg på en side afvilker du disse SQL'er:
mysql_query("UPDATE brugere SET onoff = 'on', logud = NOW() WHERE brugernavn = '$user[brugernavn]'");
mysql_query("UPDATE brugere SET onoff = 'off' WHERE DATE_ADD(logud,INTERVAL 10 MINUTE) < NOW()");

Altså først opdatere vi den aktive brugers DATETIME-stamp til NOW()
Her efter sætter vi alle brugere, hvis DATETIME-stamp+10 minutter er mindre end NOW, til onoff='off'


Hvis du gør det på en anden måde så virker det ikke.

Samtidigt skal man bevæge sig rundt på siderne for at opdatere sin DATETIME-stamp. Hvis man er på den samme side i 11 minutter bliver man sat til 'off', hvis en anden bruger bevæger sig rundt på sitet. Hvis det er et problem har jeg en løsning på det..
Avatar billede webstuff Nybegynder
20. december 2005 - 12:08 #4
Nu er man offline hele tiden, lige meget hvad pokker jeg gør.
Hvis jeg retter det manuelt i databasen, bliver man sat til offline, lige så snart man trykker på et link på siden.
Men har på fornemmelsen at det er feltet "logud" i databasen (som gemmer tidspunkt for sidste klik)..
Avatar billede fixxxer Nybegynder
20. december 2005 - 13:31 #5
Hvilken type er feltet "logud"?
Avatar billede webstuff Nybegynder
20. december 2005 - 15:10 #6
DATE ;-)
Avatar billede fixxxer Nybegynder
20. december 2005 - 16:14 #7
Ændre den til typen DATETIME..

DATE er netop kun hvad date er, nemlig år, måned og dag.. hvis vi skal bruge +10 minutter til noget skal vi have et klokkeslæt med på ..

fx nu vil en DATE kun være 2005-12-20 00:00:00, hvorimod en DATETIME vil være 2005-12-20 16:13:12..

Og da 2005-12-20 00:00:00 + 10 minutter er 2005-12-20 00:10:00 og derfor mindre end 2005-12-20 16:13:12 sættes onoff til 'off'
Avatar billede webstuff Nybegynder
20. december 2005 - 17:35 #8
I starten var den DATETIME, så sagde du jeg skulle ændre den til DATE, og nu siger du jeg skal ændre den til DATETIME igen..
Men nu ændrer jeg den til DATETIME, og ser om det virker:)
Avatar billede webstuff Nybegynder
20. december 2005 - 17:47 #9
Nu virker det som det skal.. Mange tak for hjælpen! :D
Læg et svar og jeg skal benåde dig med 30 point;)
Avatar billede fixxxer Nybegynder
20. december 2005 - 18:01 #10
Det er korrekt at jeg skrev DATE først, det var en fejl, hvilket jeg beklager.

Jeg er glad for at kunne være til hjælp :)
Avatar billede webstuff Nybegynder
20. december 2005 - 19:02 #11
Okay.. Blev også en anelse forviret :-)
Mange tak for hjælpen..
og her er point :-)
Avatar billede fixxxer Nybegynder
21. december 2005 - 13:35 #12
Tak for point :)
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