08. marts 2004 - 19:15Der er
5 kommentarer og 1 løsning
Afslutning af session ved nedlukning af vindue
Hej Eksperter !!!
Jeg har et forum, hvor der når man logger ind, står hvilke brugere som er online. Når sessionen startes ændres ændres en celle i databasen fra offline til online. Når man logger af igen, sættes den til offline... Ingen problemer.
MEN når man bare lukker vinduet, bliver brugerens status ikke ændret til offline i databasen. Jeg troede at den automatiske nedlukning af sessions efter 20 min (default) ville klare dette problem, men der tog jeg fejl. Er der en smart måde hvorpå dette problem kan løses ????
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hvis du er rigtig fræk, så laver du et onunload="..." i dit body tag. '...' skal så være en javascript funktion som åbner et lille popupvindue, hvor i du du har noget php kode som ændrer personenes status til 'offline', hvorefter vinduet lukker sig selv igen.
Når brugeren bare lukker sin browser, uden at logge ud, hopper der hurtigt et lille popupvindue op, sætter hans status, og lukker sig selv igen!
Som sagt har du i dit body tag flg.: <body onunload="autoOffline();" ... >
Du skal i din head sektion have: <script type="text/javascript"> <!-- function autoOffline() { window.open("autooffline.php?id=<?php echo $USER_ID; ?>",'offline', 'toolbar=no,directories=no,location=no,status=no,menubar=no,resizable=no,scrollbars=no,width=10,height=10,left=0,top=0'); } --> </script>
Hvor $USER_ID er er, ja, user id på den bruger som skal logges ud.
Du skal så have en php fil (autooffline.php i det her tilfælde) som ikke må/skal producere noget output. autooffline.php
<?php if ( isset($_GET['id']) ) { // Forbind til databasen $link = mysql_connect();
// Vælg database mysql_select_db('...', $link);
// Konstruer query $sql = " UPDATE tabel SET celle = 'offline' WHERE user_id = {$_GET['id']}";
Dette er nok yderst utestet, samt at min javascript færdighedder er på et absolut minimum ;D Jeg håber bare du har fanget ideen, og kan rette evt. fejl og mangler.
Tak for hjælpen, det ser ud til at virke... Men har lige et sidste spørgsmål ??? Er der ikke andre måder man kan gøre det på ??? For når min Norton Internet Security kører, blokerer den for pop-ups, og derfor bliver man ikke logget af. Der burde være en smartere løsning... Bare smid et svar, så du kan få dine point ;o)
Jeg kan ikke middelbart lige komme på en anden løsning (ikke sagt at der ikke er andre).
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.