Errror headers already sent

  • Autor Autor mauronymus
  • Fecha de inicio Fecha de inicio
M

mauronymus

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola, quisiera preguntar si a alguien le ha pasado, estaba trabajando en un proyecto web y de forma local me funciona normal, pero si lo ejecuto desde el hosting sale ese error: headers already sent , lo raro es que localmente me funciona normal,a alguien le ha pasado?

No se si desactivando los warning pase normal la web, aunque no se como desactivarlos en el hosting xD

gracias
 
Ese error normalmente ocurre cuando ya has enviado una información al frontend (es decir respondiste a cierta solicitud) con un mensaje en pantalla por ejemplo y por ende eso envía las cabeceras e inicia comunicación. SI tienes una etiqueta
PHP:
header
luego de haber enviado un mensaje es normal que arroje ese error, ya que no puedes modificar las cabeceras cuando ya has enviado una respuesta.

Lo que te recomiendo es agregar todos los headers que quieres modificar al principio del código php y antes de cualquier respuesta que estes realizando.

De otro caso, te recomiendo postear el código si es posible. Así se te podrá aportar una mejor ayuda
 
Ese error normalmente ocurre cuando ya has enviado una información al frontend (es decir respondiste a cierta solicitud) con un mensaje en pantalla por ejemplo y por ende eso envía las cabeceras e inicia comunicación. SI tienes una etiqueta
PHP:
header
luego de haber enviado un mensaje es normal que arroje ese error, ya que no puedes modificar las cabeceras cuando ya has enviado una respuesta.

Lo que te recomiendo es agregar todos los headers que quieres modificar al principio del código php y antes de cualquier respuesta que estes realizando.

De otro caso, te recomiendo postear el código si es posible. Así se te podrá aportar una mejor ayuda

dale bro, pero una pregunta, es normal que funcione localmente y al subirlo no? es que sale solo cuando cierro sesión del usuario, no se si quitando los warning ya se "solucione"
 
dale bro, pero una pregunta, es normal que funcione localmente y al subirlo no? es que sale solo cuando cierro sesión del usuario, no se si quitando los warning ya se "solucione"

Es una mala práctica que elimine los warnings, ya que igual el error esta solo que te lo saltas, trata de verificar lo que te comente. En máquina local tambien manejas cabeceras, aunque no es igual que en un hosting que la comunciación depende demasiado de esas cabeceras. Y si mandas a modificar una, te dará error
 
usualmente sucede cuando intentas hacer una redirección header('location:....'); y anteriormente has enviado información al browser, puedes eliminar todos los espacios o contenido anteriores o sino puedes hacer un hack aplicándole javascript únicamente con location.replace y evitando el php completamente.
😛7:
 
usualmente sucede cuando intentas hacer una redirección header('location:....'); y anteriormente has enviado información al browser, puedes eliminar todos los espacios o contenido anteriores o sino puedes hacer un hack aplicándole javascript únicamente con location.replace y evitando el php completamente.
😛7:

Por cuestiones de seguridad según tengo entendido, siempre es mejor manejar las redirecciones primeramente desde el lado del servidor (php), luego del lado del cliente (javascript). Así creo que el compañero primero debe intentar lo que mencionás de eliminar espacios y demás, sino funciona, utilizar scripts.
 
Por cuestiones de seguridad según tengo entendido, siempre es mejor manejar las redirecciones primeramente desde el lado del servidor (php), luego del lado del cliente (javascript). Así creo que el compañero primero debe intentar lo que mencionás de eliminar espacios y demás, sino funciona, utilizar scripts.
Así es, pero hay que darle alternativas. Una vez tuve que utilizarlo ya que el código era extremadamente extenso y no había forma de saber dónde estaba el espacio en blanco, otra alternativa si no se desea utilizar javascript es usar el buffer del navegador antes de mostrar algo (ob_start ob_flush y derivados)
😛7:
 
Interesante, sobre el buffer del navegador no lo sabía del lado del cliente, siempre creía que las únicas dos formas de conseguir la redirección a nivel cliente era por javascript o html pero ni idea que se podía hacer con el navegador. Me has dado tema para investigar estos días :encouragement:

PD: ¡Siempre es bueno tener alternativas! 🙂

-----

Actualizo: Ya investigué un poco, por lo que veo ob_start y similares se controlan a nivel servidor en php no a nivel cliente como había pensado primeramente.
 
Última edición:
usualmente sucede cuando intentas hacer una redirección header('location:....'); y anteriormente has enviado información al browser, puedes eliminar todos los espacios o contenido anteriores o sino puedes hacer un hack aplicándole javascript únicamente con location.replace y evitando el php completamente.
😛7:

si, en realidad esa parte del codigo dice header("Location: ../index.php"); jeje
ya mire pero no tiene espacios que sobren o algo pero me sigue pareciendo sumamente extraño eso, que solo me tire el error en el hosting

- - - Actualizado - - -

Vale, quiero dar gracias a todos por sus respuestas, ya lo solucione y si a alguien le pasa lo mismo y desea ver la solución con gusto la comparto.

despues de dar MUCHAS vueltas e investigar bastante sobre el tema, vi que mis espacios estaban bien, no me sobraba nada que era la primera causa del error, investigando e investigando di con que sublime text que es el editor que uso, guarda algo llamado utf-8 con bom, y esa era la maldita causa del error, asi que vi que notepad ++ en codificación tiene la opción de guardar los archivos como utf+8 sin bom, lo que hice fue abrir los archivios con ese editor, volverlos a guardar con esa codificación, subirlos al servidor y listo, error solucionado!
 
Última edición:
Atrás
Arriba