Sulla home page di un mio sito voglio segnalare quanti sono gli utenti on-line e nel forum... e mi baso perciò sul database del forum... visto che quel poco di sito che c'è è abbastanza integrato con esso (riprende le sue sessioni insomma...)

Il problema è che, mi dicono gli utenti, spesso il mio scrptino mi da molti più utenti on-line di quanti ne dia il forum (centinaia conto poche decine)..

ecco il mio codice:
Codice PHP:
//utenti on-line
    
$sql "SELECT session_time,session_page
    FROM "
.SESSIONS_TABLE."
    WHERE session_time >= "
.( time() - 300 ).';';

   
$result $db->sql_query($sql);
   
$numero_utenti $db->sql_numrows($result);
   echo 
"Utenti online: $numero_utenti - ";
  
//utenti nel forum
  
$num_utenti_forum 0;
  while ( 
$row $db->sql_fetchrow($result) )
   {
     if ( 
$row['session_page'] > -12 )   $num_utenti_forum++;
    
/*
     le varie sezioni del forum sono individuate con delle costanti numeriche definite 
     in include/costants.php da 0 a -12 sono le costanti predefinite di phpbb.. sotto il -12
    (cioè -13 e minori) sono costanti che ho aggiunto io per alcune sezioni del sito
   */
   
}
  echo 
"di cui nel forum: $num_utenti_forum 
"

Non ci sono notice.
Purtroppo non sono riuscito a beccare io stesso un momento in cui il conto era sballato per provare all'istante la query da phpmyadmin..

questo è quello che fa phpbb stesso invece
Codice PHP:
//
// Get user list
//
$sql "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page, 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"
;
if ( !(
$result $db->sql_query($sql)) )
{
    
message_die(GENERAL_ERROR'Could not obtain regd user/online information'''__LINE____FILE__$sql);
}
//continua con una lunga sezione di stampa.... 
mi smebra che faccio la stessa cosa, informazioni di identità a aprte...


qualcuno mi aiuta a scovare il bug?