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. ;)
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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.