error_reporting('E_ALL'); <-- Con esa simple línea deberías ver los errores.
Por cierto... puede que no tengas activa short_open_tag y debas usar la forma completa
<?php en lugar de
<?
Revisa el código fuente en el navegador y nos cuentas.
Cita:
Iniciado por jorgivaz Realmente si puede haber cosas antes del header
Por supuesto que se puede, pero no es correcto, de hecho, es una de las principales causas de dolores de cabeza para los que están aprendiendo PHP: "Ahh, si se activa output buffering se puede usar header() aunque se haya enviado contenido previo" y, sí, así es como funciona, pero tiene cierto límite y entonces hay que recurrir a otro tipo de búfer como ob_*() y parchar los scripts en lugar de programar adecuadamente.