Avatar billede webstuff Nybegynder
07. december 2005 - 14:50 Der er 10 kommentarer og
1 løsning

Online brugere

Hejsa

Jeg har et bruger system, og så har jeg sat den til at når man logger ind som laver den UPDATE i min mysql database, så feltet 'onoff' bliver sat til 'on'..
Så laver jeg en liste over online brugere..
og så har jeg lavet i min logout.php at den ændrer feltet til 'off' men hvis brugeren bare lukker vinduet uden at logge af, så står vedkommende stadig til 'on'..
Hvad kan jeg gøre ved det?
Avatar billede fixxxer Nybegynder
07. december 2005 - 14:53 #1
Du kan sammen med din on/off have et dato-tidsfelt i databasen, der opdateres til NOW() hver gang din bruger bevæger sig rundt på dit site. Hvis en brugers "timestamp" er mere end fx 10 minutter gammelt, antager man at han er logget ud, og sætter ham til off.
Avatar billede webstuff Nybegynder
07. december 2005 - 15:33 #2
hvordan vil du tjekke det??
Avatar billede fixxxer Nybegynder
07. december 2005 - 15:36 #3
Noget i denne her stil:

DELETE FROM online_table WHERE DATE_ADD(datotid,INTERVAL 10 MINUTE) < NOW()
Avatar billede fixxxer Nybegynder
07. december 2005 - 15:36 #4
Eller hvis du bare skal ændre til "off"

UPDATE weblog SET onoff = 'off' WHERE DATE_ADD(blog_date,INTERVAL 10 MINUTE) < NOW()
Avatar billede fixxxer Nybegynder
07. december 2005 - 15:37 #5
Der kom lige nogle copy/pastede kolonne navne med fra det jeg brugte til at teste.. Du skal uanset hvad huske at rette kolonnenavnene til så de passer med dine :)
Avatar billede webstuff Nybegynder
07. december 2005 - 15:48 #6
okay.. jeg prøver det lige.. og så vender jeg tilbage:)
Avatar billede webstuff Nybegynder
07. december 2005 - 22:09 #7
Jeg har gjort noget forkert..
Jeg har oprettet et felt i tabellen der hedder logud. og har gjort sådan her:

Det her er i en fil jeg includerer øverst på alle sider:

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



Det her er på login.php:

$logud = date("d/m-y G:i");
mysql_query("UPDATE brugere SET onoff = 'on', logud = '$logud' WHERE brugernavn = '$user[brugernavn]'") or die(mysql_error());
    header("location: profil.php");
}
Avatar billede fixxxer Nybegynder
07. december 2005 - 23:45 #8
Du får _aldrig_ mysql til at tag et DATETIME i formatet

date("d/m-y G:i");

Hvilken type er dit felt logud?
Hvis ikke den er DATETIME vil det _ikke_ virke!


Ret typen til DATETIME og gør således i din login.php:

mysql_query("UPDATE brugere SET onoff = 'on', logud = NOW() WHERE brugernavn = '$user[brugernavn]'") or die(mysql_error());
Avatar billede webstuff Nybegynder
08. december 2005 - 08:27 #9
Super duper:D
Det kører som det skal..
Smider  du et svar:)
Avatar billede fixxxer Nybegynder
08. december 2005 - 11:08 #10
Hvis du griber!
Avatar billede webstuff Nybegynder
08. december 2005 - 14:14 #11
grebet:D
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