06. april 2007 - 21:12Der er
3 kommentarer og 1 løsning
Logud hvis browser lukkes?
Hey, nu har jeg i lang tid bikset på en side.
Og i lang tid har jeg bikset med noget login værk..
Jeg har en side der hedder check.php den skal simpelthen sætte alle brugere der har været inaktiv i mere end et eller andet antal minutter gøre dem offline.
Men så har jeg et andet problem, hvis de lukker browseren skal de også gøres offline, der har jeg prøvet at bruge sessions uden held. Så ville høre om i kunne hjælpe.
min kode: [kode] <?php session_start(); include("config.php"); $datainfo = mysql_query("SELECT * FROM `brugere` WHERE `brugernavn` = '".$_SESSION[data]."'") or die(mysql_error()); $rowstatus = mysql_fetch_array($datainfo);
$tid = time(); mysql_query("UPDATE `brugere` SET `status` = 'Offline', `online_tid` = '0' WHERE `online_tid` < $tid - 600") or die(mysql_error()); mysql_query("UPDATE `brugere` SET `online_tid` = '$tid' WHERE `brugernavn` = '".$_SESSION[data]."'") or die(mysql_error());
if($rowstatus[status] == 'Offline' OR $rowstatus[banned] == 'Ja') { mysql_query("UPDATE `brugere` SET `online_tid` = '0', `status` = 'Offline' WHERE `brugernavn` = '".$_SESSION[data]."'") or die(mysql_error()); unset($_SESSION[login]); } ?> <script type="text/javascript">setTimeout("location.reload(true)",600000);</script>[/kode]
Det kan ikke lade sig gøre. Der er ingen forbindelse mellem browseren og webserveren imens siden vises. Derfor kan den ikke registrere om brugeren f.eks. lukker browseren. Og da browseren selvsagt ikke kører efter den er blevet lukket kan den heller ikke melde det tilbage til webserveren.
Jeg forstår ikke helt hvorfor den overhovedet skal sætte deres status som offline i databasen. Det nemmeste er vel bare, at sige, at hvis en bruger ikke har været aktiv i så og så mange minutter, så er denne offline. Det behøver databasen ikke få at vide. Det er jo sådan set kun brugeren der skal vide om den givne bruger er offline eller ej. Og ved visning af brugeren, hvis det er det du ønsker, laver du et lille script der siger, hvis brugerens online tid (timestamp eventuelt) ikke har været opdateret i fem minutter (for eksempel), så fortæl at brugeren er offline.
Ingen grund til at opdatere databasen med denne information.
En af mine venner har hjulpet mig, og det er fordi der skal være online lister, brugerlister hvor der skal stå om de er offline eller online, ja rigtig mange steder :P
Synes godt om
Ny brugerNybegynder
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.