Avatar billede magnus123 Nybegynder
06. april 2007 - 21:12 Der 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]
Avatar billede spideregg Nybegynder
07. april 2007 - 00:23 #1
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.
Avatar billede magnus123 Nybegynder
07. april 2007 - 10:11 #2
Er der så ikke nogle andre muligheder?
Avatar billede Slettet bruger
07. april 2007 - 11:11 #3
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.
Avatar billede magnus123 Nybegynder
07. april 2007 - 11:27 #4
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
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