ti passo un pezzettino della mia:
codice:
// PARAMETRI TEMPORALI

$tempo = time(); // determinazione del tempo attuale

// latenza per determinare quali utenti sono connessi.
// se il refresh è ogni 5 secondi viene considerato
// sconnesso un utente dopo 10 secondi
// il valore deve essere superiore a quello di refresh
$latenza = $tempo - 10 ;

// valore per il tempo di ricarica della pagina
// deve essere inferiore al tempo di latenza
$refresh = 5;

// aggiorna al tempo attuale la presenza dell'utente connesso
$aggiorna_presenza = mysql_query("
UPDATE  piumacom_utenti
SET     presenza = $tempo
WHERE   id_utente = $id_utente
",$connessione_db);

// determinazione degli utenti connessi che hanno
// il tempo di presenza maggiore della latenza
$utenti_connessi = mysql_query("
SELECT nome
FROM   piumacom_utenti
WHERE  id_utente <> $id_utente
AND    presenza > $latenza
",$connessione_db);
il campo latenza è INT UNSIGNED

se il nik c'è l'hai prima del primo refresh devi passarlo alla stessa pagina, se ad esempio il refresh lo fai con il tag meta:
codice:
<meta http-equiv=\"refresh\" content=\"$refresh; url=chat.php?nik=$nik\">