> Faqs > Headers already sent error

Headers already sent error

Hola gente, que tal, estoy tratando de programar un pequeño CMS en php para un sistemita en mi laburo... pero estoy teniendo un gran problema...

Yo tengo un archivo index que carga un módulo llamado "alta". ahí muestro un formulario HTML en el cual el usuario completa varios campos. Cuando el usuario envía el formulario, va por POST hacia un archivo llamado validar.php.

Si en validad.php veo que está todo OK entonces almaceno en la base de datos... si no me gustaría volver al index.php del módulo alta (en donde estaba el formulario) y para eso hago un header("Location:index.php?mod=cargar"); y me tira este error:

*Warning*: Cannot modify header information - headers already sent by (output started at /var/www/html/misitio/hidro/modulos/alta/validar.php:1) in */var/www/html/*misitio*/hidro/modulos/alta/validar.php* on line *45

*Cómo tengo que hacer para hacer funcionar esto.. así hablando muy en general... estuve probando con ob_strart() ... pero no pude solucionar el problema... hay alguna otra manera de redireccionar en php??

Respuestas

Ese error aparece cuando "imprimes" algo en pantalla antes de enviar un header.
Esto de "imprimir" se refiere a que:

  1. Hay una línea en blanco
  2. Hay un texto que salio con un echo
  3. O hay un texto en html que se carga antes del header.

Siempre lo mejor es pensar que si es un header de redirección debe ir en una página totalmente en blanco porque si tiene algo antes arrojará error y lo que haya después del header no se verá.

En los casos es que hayan otro tipo de headers (De sesiones o cookies por ejemplo) corre la regla de que no debe haber nada antes o arrojará error.

Jorge Molina