Por lo visto el error no esta en el código sino antes del header, lo que te dice es que enviaste una salida antes del enviar las cabeceras, una corrección rápida es poner en la primera linea del script
Lo cual hace que se utilice un buffer y envia todo junto, asi te evitas el problema de las cabeceras.
Probá con eso y nos contas que tal.