15. april 2003 - 00:34Der er
14 kommentarer og 2 løsninger
Person skal havde trykket logout! før man kan forlade siden?
Hej Jeg er i gang med at lave et bruger system hvor den, viser hvem der er online men hvis man bare lukker exploreren ned så skriver den stadig at man er online! Kan man ikke lave en smart kode så man skal være logget ud før man kan lukke exploreren? Jeg har også tænkt på at man kunne lave et popup når exploreren bliver lukket ned, med filen logout.php men det dur jo ikke hvis personen har en popup killer på computerne, nogle der er idere til hvordan man kan lave det?
Skriv hvis i skal bruge noget af min kode, til at se hvordan jeg har lavet det.
Du kan lave et sidst aktivt felt - når en bruger så træder ind på siden / siderne kan du tjekke efter felter der er mere end f.eks. 10 min gamle, hvis de er det skal de så slettes.
Sig til hvis du ikke fortsåtr hvad jeg menere - Jeg har et kode eksempel hvis det er.
sonic: Hehe - det var lige præcis det problem jeg omtalte i dit tidligere spørgsmål - der findes ikke nogen rigtig pæn løsning på det...
Der vil sikkert også komme forslag om at bruge onunload:
<BODY OnUnload="bye()">
hvor bye() så er et javascript som launcher et nyt vindue, som kalder et php-script der logger ud - det fungerer bare ikke, hvis javascript er slået fra...
$tid = date("Y-m-d H:i:s", (time()-600)); $delete = "DELETE FROM online WHERE tid < '$tid'"; mysql_query($delete);
$tjek = mysql_query("SELECT * FROM online where ip='$ip'"); if(mysql_num_rows($tjek) == 0) {
$ind = "INSERT INTO online (tid, ip) VALUES (now(),'$ip')"; mysql_query($ind);
}}else{ $update = "update online set tid=now() where ip='$ip'"; mysql_query($update); } ?>
Dette indsættes så blot i toppen af hver side, og du kan nu tjekke om folk er online ved at se i denne tabel - evt. tilføje et id i denne tabel i databasen istedet for at tjekke dem med ip.
Til mit forslag ville en helt ny tabel vel passe bedst - Det eneste du så skal have i denne tabel er et idfelt og tiden idfeltet skal så bare være lig med idfeltet i tabellen hvor du har brugerens login informationer mv.
Så altså når man logger ind så skal man komme ind i tabellen online og har man ikke været aktiv i 10 min bliver man slettet der fra igen.
Du kører vel dit system med sessions og i denne session med følger vel kun brugerens id? Andet ville hvertfald være lige gyldigt... Dette id fører du jo så bare ned og gemmer samme med den sidste aktive tid i tabellen, istedet for ip'en i mit eksempel.
Tak for de gode forslag men jeg har fundet ud af at lave det sådan:
mysql_query("UPDATE brugere SET sidste_aktivitet=NOW() WHERE nick='$_SESSION[nick]'");
Lukket
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.