Foros del Web » Programando para Internet » PHP »

Error header information

Estas en el tema de Error header information en el foro de PHP en Foros del Web. Hola estoy haciendo unas pruebas y quiero que despues de cierta ejecucion el php me redireccione, el problema es que no lo hace me dice ...
  #1 (permalink)  
Antiguo 03/12/2002, 21:03
Avatar de .
.
 
Fecha de Ingreso: mayo-2002
Ubicación: Tampico
Mensajes: 906
Antigüedad: 21 años, 10 meses
Puntos: 1
Pregunta Error header information


Hola estoy haciendo unas pruebas y quiero que despues de cierta ejecucion el php me redireccione, el problema es que no lo hace me dice el siguiente error

Warning: Cannot add header information - headers already sent by (output started at /mnt/host-users/matcruz/admin/admin.php:149) in /mnt/host-users/matcruz/admin/admin.php on line 268

Tengo un solo archivo dividido en varios bloques, cada bloque se ejecuta al cumplirse cierta condicion (la condicion depende del valor de una variable, el valor de esa variable depende del link que desee visitar )

redirecciono de la siguiente forma

header("Location: ?Accion=VerMensajes");

Solo quiero agregar algo raro que me sucede, y es que al quitar algunas lineas de html en la parte de arriba del archivo, entonces si me funciona perfectamente, pero si las dejo me sale el error , ya lo revise linea por linea tratando de encontrar errores de sintaxis y no hay errores, alguien sabe cual sera el problema

bueno gracias por su tiempo bye
  #2 (permalink)  
Antiguo 03/12/2002, 21:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
El problema es que si usas header() par enviar cabeceras al navegador .. antes de ellas no puede existir NADA de HTML ..

Código PHP:
<?
// procesos ... sin echo ni nada de HTML enviado .. 
header("Location: pagina.php?Accion=VerMensajes"); 
exit;
?>
Un ejemplo típico es si usas un mismo script para hacer algunas acciones entre las q tengas q hacer una de ellas o varias sea la de generar algun tipo de HTML .. seria:

Código PHP:
<?
$variable
="valor";

if (
$Accion=="VerMensajes"){
echo <<< HTML
<html>
<body>
Algo de HTML .. con sus cabeceras y tags típicos ...
</body>
</html>
HTML;
} else {
header("location: pagina.php?accion=nose");
exit; 
// terminar la ejecución del script ...usalo.
}
?>
eso seria lo correcto .. mientras q esto NO sería correcto:

<html>
<body>
<?
if ($Accion=="VerMensajes"){
echo "Algo de HTML .. con sus cabeceras y tags típicos ...";
} else{
header("location: talsitio.php?accion=nose");
exit;
}

?>
</body>
</html>

Si tienes que presentar un mensaje de error o de "fue todo ok" al terminar tu proceso y luego redireccionar a cierta página .. pasale como parametro alguna varaible de estado (igual como usas tu Accion .. ) para indicar segun su valor algo tipo "ok" o "error" .. y muestra el mensaje correspondiente en la página que hagas la redireccion NO en la que tienes el proceo y el "header" ..

Un saludo,
  #3 (permalink)  
Antiguo 04/12/2002, 13:15
Avatar de .
.
 
Fecha de Ingreso: mayo-2002
Ubicación: Tampico
Mensajes: 906
Antigüedad: 21 años, 10 meses
Puntos: 1
Hola Cluster, gracias por tu ayuda, no tenia conocimiento de lo que me dices, bueno agradesco tu tiempo

Saludos bye
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:59.