PHP - Warning: Cannot modify header information - headers already sent by

 
Vista:
sin imagen de perfil

Warning: Cannot modify header information - headers already sent by

Publicado por demien (3 intervenciones) el 10/04/2017 23:24:14
Hola. Estoy consiguiendo este mensaje de error en mi aplicacion web PHP/MySQL. Este mensaje solo me aparece en mi hosting ya que en mi servidor local WAMP funciona perfecto.

Warning: Cannot modify header information - headers already sent by (output started at /home3/user/public_html/venta/index.php:89) in /home3/user/public_html/venta/index.php on line 235

Sé que es un error muy comun ya que he revisado mucha informacion en la web y he intentado casi todas de ellas pero sin exito. Lo que me desconcierta es que la gente dice que no debe haber nada antes <?php que contiene al header('Location: index.php'); pero yo tengo mi script <?php ... ?> dentro de un HTML y funciona perfecto en mi servidor local. Esta es la estructura de mi pagina:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
<html>
<head>
....
</head>
<body>
<div class="wrapper">
.....
<?php
...
}
$_SESSION['carrito'] = $carrito;
header('Location: index.php');  //AQUI SE PRESENTA EL PROBLEMA SEGUN EL MENSAJE DE ERROR
exit();
}
.....
?>
</div>
</body>
</html>


La idea del header location es que la pagina se refresque pero mostrando ya los datos ingresados en un formulario.

Mi principal duda es porque la gente dice que no puede haber nada antes del script php ya que yo tengo mucho codigo HTML como ven y funciona perfecto en mi servidor local.

Agradeceria algunas luces sobre esto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Warning: Cannot modify header information - headers already sent by

Publicado por Miguel (218 intervenciones) el 11/04/2017 02:18:40
Hola,
Como exactamente te dice el mensaje, no puedes enviar encabezados cuando ya comenzaste a enviar contenido. No entiendo por qué quieres redireccionar a otra página cuando ya comenzaste a enviar contenido (HTML); si tienes alguna validación y quieres hacer esto debería ir al principio.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Warning: Cannot modify header information - headers already sent by

Publicado por demien (3 intervenciones) el 11/04/2017 06:15:56
Entiendo tu punto, pero no quiero redireccionar a otra pagina sino que es la misma pero ya con los datos ingresados. Y si es un error de codigo porque sí funciona perfectamente en mi servidor local?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Warning: Cannot modify header information - headers already sent by

Publicado por xve (6935 intervenciones) el 11/04/2017 13:24:12
Hola Demien, da lo mismo... para el sistema es una redireccion...

Lo que puedes hacer, es hacerlo con javascript... algo así:

1
2
3
<script>
location.reload();
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Warning: Cannot modify header information - headers already sent by

Publicado por demien (3 intervenciones) el 22/04/2017 17:43:31
Ok. Yo reemplace

header('Location: index.php');

por

<script>
location.reload();
</script>

pero ahora solo consigo una pagina en blanco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Warning: Cannot modify header information - headers already sent by

Publicado por xve (6935 intervenciones) el 23/04/2017 19:44:38
Hola Demien, con el reload() lo que haces, es recargar la pagina en la que te encuentras... revisa que no se haga un bucle infinito, que vaya entrando y recargandose constantemente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar