Praticamente funziona così... quando ti loggi al forum... sia che tu richieda il mantenimento dei dati di connessione... o meno... lui setta cmq un cookie con il tuo USER ID numerico... questa mia funzioncina lo va a leggere e poi spara una query per ottenere lo USERNAME

codice:
function riconosci_utente()
{
   $utente = 'default';
   if (isset($_COOKIE["phpbb2mysql_data"]))
   {
    $stringa = $_COOKIE["phpbb2mysql_data"];
    $n = sscanf($stringa, "a:%d:{%s}", $l1, $s1);
    $s1 = rtrim($s1,"}");
    $s1 = trim($s1);
    if ($s1 == '') $utente = 'default';
    else
    {
     list($s1,$s2,$s3,$s4) = explode(";",$s1);
     // $s3 dovrebbe contenere "userid" e $s4 l'id vero e proprio
     // print "*** ".$s3."*".$s4." ***";
     list($s1,$s2,$s3) = explode(":",$s3);
     $s3 = trim($s3,"\"");
     // controllo che vi sia realmente USERID
     if (($s1 != 's') && ($s2 != 6) && ($s1 != 'userid')) $utente = 'error';
     else
     {
	//print $s4.'
';
      list($s1,$s2,$s3) = explode(":",$s4);
      if ($s1 == 'i') $s3 = $s2;
      elseif (($s1 != 's') && (strlen($s3)!= $s2+2)) $utente = 'error';
      // if (($s1 != 's') && (strlen($s3)!= $s2+2)) $utente = 'error';
	//print $s3.'
';
      $s3 = trim($s3,"\"");
	//print $s1.$s2.$s3;
	if ($utente <> 'error')
{
      $res = mysql_query("SELECT username FROM phpbb_users WHERE user_id = $s3");
     $row = mysql_fetch_row($res);
     $utente = $row[0];
}
     }
    }
   }
   return $utente;
}
Nel caso il cookie non sia nel formato giusto si ottiene come nome utente 'error'

Due sono i presupposti perche' tale funzione svolga il suo compito:

1. l'utente deve essersi loggato al forum o aver detto a phpBB di ricordare i suoi dettagli di connessione

2. devi avere una connessione già aperta col db... oppure ti fai restituire lo userid e non lo username

EDIT: mi ero dimenticato... se non trova l'utente... lo setta a 'default'