Who is online op index website probleem

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gesloten
Purmerend
Berichten: 20
Lid geworden op: 09 dec 2003, 16:43
Locatie: Purmerend
Contacteer:

Who is online op index website probleem

Bericht door Purmerend » 22 aug 2004, 15:16

Ik heb een website welke niet op een portal systeem draaid.
Maar wou toch op de index een blokje maken waar mensen konden zien wie er online is.

Nu heb ik van phpbbhacks een script gedownload maar heb daar een paar probleempjes mee.

Hier de code,

Code: Selecteer alles

<?php
define('IN_PHPBB', true);

$phpbb_root_path = "forum/"; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

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

$sql = "SELECT u.username, u.user_id, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_ip 
           FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s 
           WHERE u.user_id = s.session_user_id 
                      AND s.session_time >= ".( time() - 300 ) . "
           ORDER BY u.username ASC, s.session_ip ASC"; 
$result = $db->sql_query($sql); 
if(!$result) 
{ 
   message_die(GENERAL_ERROR, "Couldn't obtain user/online information.", "", __LINE__, __FILE__, $sql); 
} 

$userlist_ary = array(); 
$userlist_visible = array(); 

$logged_visible_online = 0; 
$logged_hidden_online = 0; 
$guests_online = 0; 
$online_userlist = ""; 

$prev_user_id = 0; 
$prev_session_ip = 0; 

while( $row = $db->sql_fetchrow($result) ) 
{ 
        if( $row['session_logged_in'] ) 
        { 
                if( $row['user_id'] != $prev_user_id ) 
                { 
                        $style_color = ""; 
                        if( $row['user_level'] == ADMIN ) 
                        { 
                                $row['username'] = '<b>' . $row['username'] . '</b>'; 
                                $style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; 
                        } 
                        else if( $row['user_level'] == MOD ) 
                        { 
                                $row['username'] = '<b>' . $row['username'] . '</b>'; 
                                $style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; 
                        } 

                        if( $row['user_allow_viewonline'] ) 
                        { 
                                $user_online_link = '<a href="' . append_sid($phpbb_root_path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>'; 
                                $logged_visible_online++; 
                        } 
                        else 
                        { 
                                $user_online_link = '<a href="' . append_sid($phpbb_root_path."profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>'; 
                                $logged_hidden_online++; 
                        } 
          
                        if( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) 
                        { 
                                $online_userlist .= ( $online_userlist != "" ) ? ", " . $user_online_link : $user_online_link; 
                        } 
                } 
        } 
        else 
        { 
                if( $row['session_ip'] != $prev_session_ip )
                {
                        $guests_online++; 
                }  
        } 

        $prev_user_id = $row['user_id']; 
        $prev_session_ip = $row['session_ip']; 
} 

if( empty($online_userlist) ) 
{ 
   $online_userlist = $lang['None']; 
} 
//$online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . " " . $online_userlist; 
$total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online; 

if( $total_online_users == 0 ) 
{ 
        $l_t_user_s = $lang['Online_users_zero_total']; 
} 
else if( $total_online_users == 1 ) 
{ 
        $l_t_user_s = $lang['Online_user_total']; 
} 
else 
{ 
        $l_t_user_s = $lang['Online_users_total']; 
} 

if( $logged_visible_online == 0 ) 
{ 
        $l_r_user_s = $lang['Reg_users_zero_total']; 
} 
else if( $logged_visible_online == 1 ) 
{ 
        $l_r_user_s = $lang['Reg_user_total']; 
} 
else 
{ 
        $l_r_user_s = $lang['Reg_users_total']; 
} 

if( $logged_hidden_online == 0 ) 
{ 
        $l_h_user_s = $lang['Hidden_users_zero_total']; 
} 
else if( $logged_hidden_online == 1 ) 
{ 
        $l_h_user_s = $lang['Hidden_user_total']; 
} 
else 
{ 
        $l_h_user_s = $lang['Hidden_users_total']; 
} 

if( $guests_online == 0 ) 
{ 
        $l_g_user_s = $lang['Guest_users_zero_total']; 
} 
else if( $guests_online == 1 ) 
{ 
        $l_g_user_s = $lang['Guest_user_total']; 
} 
else 
{ 
        $l_g_user_s = $lang['Guest_users_total']; 
} 

$l_online_users = sprintf($l_t_user_s, $total_online_users); // all users
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online); // visible users
$l_online_users .= sprintf($l_h_user_s, $logged_hidden_online); // hidden users
$l_online_users .= sprintf($l_g_user_s, $guests_online);  // guests

$onlinet="$l_online_users<br>$online_userlist<br>"; 
// echo $onlinet;
//echo ("<b>In&nbsp;Totaal :&nbsp;");
//echo $total_online_users; 
//echo ("<br>Geregistreerd :&nbsp;");
//echo $logged_visible_online;
//echo ("<br>Verborgen :&nbsp;");
//echo $logged_hidden_online;
//echo ("<br>Gasten :&nbsp;");
//echo $guests_online;
//echo ("<br></b>");
//echo ($online_userlist);
echo ('<font size="2">Er&nbsp;zijn&nbsp;<strong>');
echo $total_online_users;
echo ('</strong>&nbsp;gebruikers&nbsp;online<br><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
echo $guests_online;
echo ('</strong>&nbsp;Gasten,<br><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
echo $logged_hidden_online;
echo ('</strong>&nbsp;Verborgen,<br><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
echo $logged_visible_online;
echo ('</strong>&nbsp;Leden :<br>');
echo ($online_userlist);

?>
De code is eigenlijk al veel te groot aangezien ik helemaal niet met de $lang wil werken maar gewoon alleen de getallen en online namen.

Maar dit werkte niet omdat deze code nu alleen weergeeft wie er op de indez zit en in het forum. dus kan ik het opsplitsen? een deel bijvoorbeeld in mijn topframe welke dus op elke pagina is te zien, en dan het echo gedeelte in de index van de site?

Het volgende probleem is dat als iemand nu op de site komt en vervolgens weer vertrekt zonder de forum berichten te lezen worden deze volgende keer niet meer als ongelezen aangemerkt.

bijvoorbaat dank, Marcel

Gesloten