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,