who is online op website

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
arievdonk
Berichten: 45
Lid geworden op: 27 feb 2005, 16:06

who is online op website

Bericht door arievdonk » 24 mei 2005, 14:41

Zoals de titel het al zecht wil ik graag op mijn website hebben staan hoeveel er online zijn wie weet hiervoor de juiste syntax ?

Gebruikersavatar
ukkepuk
Berichten: 324
Lid geworden op: 22 jan 2005, 19:36
Locatie: België
Contacteer:

Bericht door ukkepuk » 24 mei 2005, 16:20

zit toch standaard in PHPBB !

Gebruikersavatar
Bee
Berichten: 13403
Lid geworden op: 29 aug 2004, 10:30

Bericht door Bee » 24 mei 2005, 16:40

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 :?
... Maar ik modereer (nog) niet.

arievdonk
Berichten: 45
Lid geworden op: 27 feb 2005, 16:06

Bericht door arievdonk » 25 mei 2005, 08:39

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.

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 25 mei 2005, 09:53

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. :)

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 26 mei 2005, 18:23

En dan niet te vergeten define('SHOW_ONLINE', true);
Afbeelding

Gebruikersavatar
w0lfie.be
Berichten: 777
Lid geworden op: 16 mar 2003, 13:59
Locatie: Gent (België)
Contacteer:

Bericht door w0lfie.be » 27 mei 2005, 14:14

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.

Gebruikersavatar
Bee
Berichten: 13403
Lid geworden op: 29 aug 2004, 10:30

Bericht door Bee » 27 mei 2005, 14:55

Ook hier geldt weer: shorttags kunnen vaak niet werken!
... Maar ik modereer (nog) niet.

arievdonk
Berichten: 45
Lid geworden op: 27 feb 2005, 16:06

Bericht door arievdonk » 30 mei 2005, 10:26

Oke bedankt, dit was idd ongeveer wat ik zocht ik ga het meteen proberen

Gesloten