Tutto ciò che è FUORI dai tag <?php e ?> viene considerato testo da mandare all'output.

Quindi TUTTO ciò che hai scritto PRIMA del tuo primo <?php viene inviato all'output, creando il problema.

Quando dico di metter come prima linea la apertrura della sessione intendo proprio come prima linea del tuo script, prima di qualsiasi altra cosa, html compreso!