Avatar billede riversen Nybegynder
14. november 2003 - 17:18 Der er 9 kommentarer og
1 løsning

antal brugere online

Jeg har lavet et script som gemmer i en db, hvor mange brugere der er online. Der virker som det skal, men jeg kom til at tænke på, at det jo er misvisende, hvis der er flere brugere på samme ip adresse, da det er den jeg gemmer i db'en. Er der en smartere måde? Session id måske? Og hvordan får jeg nu fat i det?
Avatar billede detox Nybegynder
14. november 2003 - 17:24 #1
Her er et eksempel der tæller antal sessionfiler. Det er forøvrigt betydeligt hurtigere end databaseudgaven:

<? session_start();?>
<html>
<head>
<title> Online brugere </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
define("MAX_IDLE_TIME", 3);

function getOnlineUsers() {
    if ($directory_handle = opendir(session_save_path())) {
        $count = 0;
        while (false !== ($file = readdir($directory_handle))) {
            if ($file != '.' && $file != '..') {
                if (time() - fileatime(session_save_path() . '\\' . $file) < MAX_IDLE_TIME * 60) {
                    $count++;
                }
            }
        }
        closedir($directory_handle);
        return ($count);
    } else {
    return false;
    }
}
echo 'Number of online users: ' . getOnlineUsers() . '<br>';
?>
</body>
</html>
Avatar billede riversen Nybegynder
14. november 2003 - 17:27 #2
tænkte på det, men er der altid kun EN session fil pr. bruger? Tænker på, hvis jeg opretter fx 10 session variabler.

Men jeg tror egenlig gerne jeg vil holde mig til db, hvis det er muligt. Jeg kan vel få fat i id'et som her på e, men hvordan.
Avatar billede detox Nybegynder
14. november 2003 - 17:28 #3
Med session_id() vel sagtens. Der vil kun være en fil pr. bruger.
Avatar billede riversen Nybegynder
14. november 2003 - 17:30 #4
ja, det må være den...kunne ikke lige finde den.
Avatar billede spunk13 Nybegynder
14. november 2003 - 17:32 #5
Jeg har lige testet - og den udskriver 2 forskellige id'er selvom det er samme ip, så ja, det må være den :)
Avatar billede riversen Nybegynder
14. november 2003 - 17:34 #6
så mangler jeg bare et svar.
Avatar billede detox Nybegynder
14. november 2003 - 17:34 #7
Jep, men du kan jo teste scriptet. Det er faktisk ret effektivt ;o)
Avatar billede detox Nybegynder
14. november 2003 - 17:34 #8
.
Avatar billede riversen Nybegynder
14. november 2003 - 17:36 #9
tror jeg, at jeg gør.
Avatar billede riversen Nybegynder
16. november 2003 - 11:57 #10
vil lige scriptet faktisk ikke er optimalt. Lige nu siger den 0 online selvom jeg er online på siden. Det er jo sikkert fordi, min sessionfil er mere end 3 min gammel.
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