07. januar 2007 - 14:03Der er
22 kommentarer og 1 løsning
Log ud automatisk
Hej eksperter!!!!!!! Jeg har mit community system, men har problemer med at logge folk af automatisk efter x min... Det er den eneste mulighed for at logge folk af, da jeg ikke tror at man kan logge dem af når de lukker browser-vinduet... Eller ta'r jeg fejl??
Men det skal ihvertfald være sådan at folk ikke er online hele tiden hvis de ikke trykker "Logud".
Jeg har noget kode i evt. kan bygge på (ikke meget, da det jeg har ikke fungerer):
mysql_query("UPDATE login SET login_status2 = 'Offline' WHERE login_username = '$_SESSION[login_username]'") or die(mysql_error()); }
Håber i forstår hvad jeg mener og at i kan hjælpe. ;)
Hvis det var mig ville jeg gemme en tid når de blev logget ind og tjekke den hver gang siden blev opdateret
// sætter alle der ikke har opdateret i 40 sek til offline... mysql_query("UPDATE login SET status2 = 'offline', tjektid = '0' where 'tjektid < ".$tid." - 40'");
Når man har klikket logind kommer dette (timeout er i stedet for tjektid): mysql_query("UPDATE login SET login_status2 = 'Online', login_ip = '$_SERVER[REMOTE_ADDR]', timeout='0' WHERE login_username = '$s_login_username'") or die(mysql_error());
Og øverst på min side har jeg: $a = mysql_query("SELECT * FROM login WHERE login_username = '$_SESSION[login_username]' AND login_password = '$_SESSION[login_password]' LIMIT 1") or die(mysql_error()); while($r = mysql_fetch_array($a)) { $tid = time(); if($r[timeout] < ($tid-40)){ mysql_query("UPDATE login SET login_status2 = 'Offline', timeout='0' WHERE login_username = '$_SESSION[s_login_username]'") or die(mysql_error()); } }
//fortæller den skal opdatere brugere som ikke har haft opdatere feltet "tjektid" i 50 sekunder - hvis ikke, så laver den "status" til offline og reseter "tjektid". mysql_query("UPDATE login SET status = 'offline', tjektid = '0' where tjektid < (".$tid." - 50)");
//opdatere bruger data mysql_query("UPDATE login SET tjektid = '".$tid."' WHERE `brugernavn` = '".$_SESSION['login_username']."'");
Jeg har selv lavet det sådan at hvergang brugeren opdaterer en side/kigger på en ny gemmes den nye tid i databasen - udfra det siger jeg at alle der har kigget på en ny side i de seneste 5 minutter er online, tror det er standard måden at gøre det på. At sætte noget til offline er spild, som jeg ser det, bare tjek tiden.
men du siger: set status til offline hvor tjektid er mindre end tid-50... Så sætter den da offline ved alle bruger når man ikke siger WHERE logind_username = osv...?
Nu prøver jeg som du siger, men hvordan får jeg session_unset(); session_destroy(); Til at fungere samtidig med mysql_query("UPDATE login SET status = 'offline', tjektid = '0' where tjektid < (".$tid." - 50)"); ??
Jeg har sat det op... men den er ikke sat som offline... Skal måske lige sige at jeg har loginsystemet i en mappe og siderne i mappen er included på siden... Indexen i loginmappen det er der jeg ligger alle de koder du har skrevet
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.