ob_start();
all'inizio della pagina (appena dopo session_start() )
e ob_flush();
dopo la funzione header!
si tratta di output buffering, ovvero il php manda tutto l'output contemporaneamente alla fine della pagina o all'istruzione ob_flush(); e non ti fa problemi coi reinidirizzamenti
ciao!