Pagina 1 van 1

who is online op website

Geplaatst: 24 mei 2005, 14:41
door arievdonk
Zoals de titel het al zecht wil ik graag op mijn website hebben staan hoeveel er online zijn wie weet hiervoor de juiste syntax ?

Geplaatst: 24 mei 2005, 16:20
door ukkepuk
zit toch standaard in PHPBB !

Geplaatst: 24 mei 2005, 16:40
door Bee
ukkepuk schreef:zit toch standaard in PHPBB !
Ik denk dat hij het buiten het forum wil trekken. Eens denken hoor, was daar een mod voor :?

Geplaatst: 25 mei 2005, 08:39
door arievdonk
bee schreef:
ukkepuk schreef:zit toch standaard in PHPBB !
Ik denk dat hij het buiten het forum wil trekken. Eens denken hoor, was daar een mod voor :?
Ja dit bedoel ik idd, want het staat wel leuk op mijn website zoveel geregistreerde mensen enzo.

Geplaatst: 25 mei 2005, 09:53
door Stef
Ik heb even voor je gekeken, maar kan niet direct iets op phpBBhacks vinden.

Opzich moet het niet zo moeilijk zijn om het zelf in te bouwen.. je zou gewoon de stukken over moeten nemen. :)

Geplaatst: 26 mei 2005, 18:23
door Luuk
En dan niet te vergeten define('SHOW_ONLINE', true);

Geplaatst: 27 mei 2005, 14:14
door w0lfie.be
Sla de volgende code op in een map (vb mods) in je phpbb root folder.

Het eerste bestand: stats.php

Code: Selecteer alles

<?php
if (!defined('IN_PHPBB')){ die ('hacking attempt'); }

function phpbb_raise_error($message = null, $file = null, $line = null){
    global $CFG;

    switch ($CFG['on_error']){
        case 'redirect':
            if ($CFG['redirect']){
                header ('Location: ' . $CFG['redirect']);
            }else{
                $CFG['on_error'] = 'die';
                phpbb_raise_error($message, $file, $line);
            }
            break;
        case 'phpbb':
            message_die(GENERAL_MESSAGE,
                        '<b>phpbb Fetch All error:</b> ' . $message, '', __FILE__, __LINE__);
            break;

        default:
            die ('<tt><b>phpbb Fetch All error:</b> ' . $message . ' at ' . $file . ':' . $line . '</tt>');
    }

    exit;
}

function phpbb_fetch_row($sql = null){
    global $db;

    if (!$sql){
        return;
    }

    $query = phpbb_query($sql);
    $result = $db->sql_fetchrow($query);
    return $result;
}

function phpbb_fetch_rows($sql = null){
    global $db;

    if (!$sql){
        return;
    }

    $query = phpbb_query($sql);
    $result = array();

    while ($row = $db->sql_fetchrow($query)){
        $result[] = $row;
    }

    return $result;
}

function phpbb_query($sql = null){
    global $db;

    if (!$query = $db->sql_query($sql)){
        phpbb_raise_error('database query failed', __FILE__, __LINE__);
    }

    return $query;
}

function phpbb_fetch_stats(){
    global $db;

    $result = array();

    $result['total_posts'] = get_db_stat('postcount');
    $result['total_users'] = get_db_stat('usercount');

    $newest_user           = get_db_stat('newestuser');

    $result['user_id']     = $newest_user['user_id'];
    $result['username']    = $newest_user['username'];

    $sql = 'SELECT
              session_id
            FROM
              ' . SESSIONS_TABLE . '
            WHERE
              session_time >= ' . (time() - 300);

    $user_online = phpbb_fetch_rows($sql);

    $result['user_online'] = count($user_online);

    return $result;
}
?>
Dan op je website, op de pagina waarje die zaken wilt weergeven zeg je helemaal boven aan (dus nog voor <head>):

Code: Selecteer alles

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

include_once ('phpBB/mods/stats.' . $phpEx);
$stats = phpbb_fetch_stats();
Wel ff het path aanpassen (Hier staat het script in phpBB/mods/stats.php maar bij jou kan dit anders zijn)

Je kan deze zaken oproepen met dit script:
- $stats['total_posts'] = Totaal aantal posts op je forum
- $stats['total_users'] = Totaal aantal gebruikers op je fourm
- $stats['user_online'] = Aantal gebruikers online
- $stats['user_id'] = ID van nieuwste lid
- $stats['username'] = gebruikersnaam van nieuwste lid

Om deze stats nu te gebruiken doe je het volgende. Op de plaats waar je de statistiek wilt zetten zet je dit stukje code (zelfde volgorde als hierboven, laatste 2 staan samen):

Code: Selecteer alles

- <?= $stats['total_posts']; ?> forum posts

- <?= $stats['total_users']; ?> registered users

- <?= $stats['user_online']; ?>  <?= ($stats['user_online'] == 1) ? 'person' : 'persons' ?> browsing the site

- <a href="phpbb/profile.php?mode=viewprofile&u=<?= $stats['user_id'] ?>"><?=$stats['username'] ?></a>
Dit is code die ik gebruik (en dus werkt). Mss zijn er nu wel enkele foutjes ingeslopen bij het copy/paste werk, want het script zat goed verwerkt in de site. Dit script toont dus zowat statistieken, is dat wat je wou?
Een script die echt de leden zelf toont (zoals bij who's online, op het forum zelf) heb ik ook nog staan anders.
Mochten er vragen zijn, laat gerust maar weten.

Geplaatst: 27 mei 2005, 14:55
door Bee
Ook hier geldt weer: shorttags kunnen vaak niet werken!

Geplaatst: 30 mei 2005, 10:26
door arievdonk
Oke bedankt, dit was idd ongeveer wat ik zocht ik ga het meteen proberen