Visualizzazione dei risultati da 1 a 2 su 2

Discussione: utenti online su phpbb

  1. #1

    utenti online su phpbb

    Ciao a tutti!

    grazie alla pillola di nix82 ho integrato la gestione delle sessioni di phpbb con il resto del mio sito.. e funziona tutto a meraviglia..

    ora, su phpbb.it ho trovato uno script ke conta gli utenti membri e non online nel forum.. lo script è il seguente..

    codice:
    <?php 
    define('IN_PHPBB', true); 
    $phpbb_root_path = 'forum/'; 
    include($phpbb_root_path . 'extension.inc'); 
    include($phpbb_root_path . 'common.'.$phpEx);
    
    $logged_visible_online = 0; 
    $logged_hidden_online = 0; 
    $guests_online = 0; 
    $online_userlist = ''; 
    $l_online_users = ''; 
    
          $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 ) . " 
             $user_forum_sql 
          ORDER BY u.username ASC, s.session_ip ASC"; 
       if( !($result = $db->sql_query($sql)) ) 
       { 
          message_die(GENERAL_ERROR, 'Could not obtain user/online information', '', __LINE__, __FILE__, $sql); 
       } 
    
       $userlist_ary = array(); 
       $userlist_visible = array(); 
    
       $prev_user_id = 0; 
       $prev_user_ip = $prev_session_ip = ''; 
    
       while( $row = $db->sql_fetchrow($result) ) 
       { 
          // User is logged in and therefor not a guest 
          if ( $row['session_logged_in'] ) 
          { 
             // Skip multiple sessions for one user 
             if ( $row['user_id'] != $prev_user_id ) 
             { 
                $style_color = ''; 
                if ( $row['user_level'] == ADMIN ) 
                { 
                   $row['username'] = '' . $row['username'] . ''; 
                   $style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; 
                } 
                else if ( $row['user_level'] == MOD ) 
                { 
                   $row['username'] = '' . $row['username'] . ''; 
                   $style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; 
                } 
    
                if ( $row['user_allow_viewonline'] ) 
                { 
                   $user_online_link = '' . $row['username'] . ''; 
                   $logged_visible_online++; 
                } 
                else 
                { 
                   $user_online_link = '' . $row['username'] . ''; 
                   $logged_hidden_online++; 
                } 
    
                if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN ) 
                { 
                   $online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link; 
                } 
             } 
    
             $prev_user_id = $row['user_id']; 
          } 
          else 
          { 
             // Skip multiple sessions for one user 
             if ( $row['session_ip'] != $prev_session_ip ) 
             { 
                $guests_online++; 
             } 
          } 
    
          $prev_session_ip = $row['session_ip']; 
       } 
       $db->sql_freeresult($result); 
    
       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 > $board_config['record_online_users']) 
       { 
          $board_config['record_online_users'] = $total_online_users; 
          $board_config['record_online_date'] = time(); 
    
          $sql = "UPDATE " . CONFIG_TABLE . " 
             SET config_value = '$total_online_users' 
             WHERE config_name = 'record_online_users'"; 
          if ( !$db->sql_query($sql) ) 
          { 
             message_die(GENERAL_ERROR, 'Could not update online user record (nr of users)', '', __LINE__, __FILE__, $sql); 
          } 
    
          $sql = "UPDATE " . CONFIG_TABLE . " 
             SET config_value = '" . $board_config['record_online_date'] . "' 
             WHERE config_name = 'record_online_date'"; 
          if ( !$db->sql_query($sql) ) 
          { 
             message_die(GENERAL_ERROR, 'Could not update online user record (date)', '', __LINE__, __FILE__, $sql); 
          } 
       } 
    
       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); 
       $l_online_users .= sprintf($l_r_user_s, $logged_visible_online); 
       $l_online_users .= sprintf($l_h_user_s, $logged_hidden_online); 
       $l_online_users .= sprintf($l_g_user_s, $guests_online); 
       
    echo "
    <span class=\"titolog\">Utenti Online</span><hr width=\"100%\" noshade>";
    print "<span class=\"testo\">In totale ci sono  $total_online_users  utenti in linea:
    ";
    print "$guests_online visitatori
    ";
    print "$logged_hidden_online utenti nascosti
    ";
    print "[b]$logged_visible_online[b] membri:
     $online_userlist</span>"; 
    
    
    
    ?>
    Anke questo script funziona bene ma c'è un problema.. entrambi gli script utilizzano questa parte di codice

    codice:
    define('IN_PHPBB', true); 
    $phpbb_root_path = 'forum/'; 
    include($phpbb_root_path . 'extension.inc'); 
    include($phpbb_root_path . 'common.'.$phpEx);
    e inserendoli entrambi nella stessa pagina mi compare questo errore:

    Fatal error: Cannot redeclare class template in c:\programmi\easyphp1-8\www\forum\includes\template.php on line 30

    proprio perchè (almeno io me lo sono spiegato così) includono entrambi gli stessi file citati sopra.. infatti se lancio lo script per gli utenti online in una pagina a parte funziona perfettamente.. il problema è ke io non posso togliere in nessuno dei due quelle righe, altrimenti nn funziona + un tubo

    avete qualke soluzione?

  2. #2
    nessuno sa darmi una mano?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.