non puoi avere ouput prima di usare header() [nel momento in cui mandi dell'output automaticamente il server manda gli headers].
Pr "output" intendo qualsiasi cosa possa essere inviata al browser: output di php, codice html, semplici caratteri di spazio.

Devi cercare di non mettere nessun output prima della funzione header, altrimenti puoi usare ob_start() ad inizio pagina per bufferizzare l'output

In locale o c'è un diverso comportameno della pagina, che così non ha output prima di header(), oppure semplicemente hai l'error_reporting disattivato... rischio che si corre ad usare easyphp :P

vedi pillola su error reporting