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..
Anke questo script funziona bene ma c'è un problema.. entrambi gli script utilizzano questa parte di codicecodice:<?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>"; ?>
e inserendoli entrambi nella stessa pagina mi compare questo errore:codice:define('IN_PHPBB', true); $phpbb_root_path = 'forum/'; include($phpbb_root_path . 'extension.inc'); include($phpbb_root_path . 'common.'.$phpEx);
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?

Rispondi quotando