Ver Mensaje Individual
  #9 (permalink)  
Antiguo 17/11/2010, 12:50
Mitzy
 
Fecha de Ingreso: octubre-2010
Mensajes: 41
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: WARNING: Cannot modify header information - headers already sent by

Cita:
Iniciado por jaao_death Ver Mensaje
vamos a ver, el error se produce cuando intentas modificar o enviar una cabecera HTTP después de haber enviado datos, es decir:

Breve introducción a HTTP

La comunicación entre un servidor y un cliente web usa el protocolo HTTP como estándar (puede no ser así, pero es poco común).

El servidor necesita enviar información al cliente para que manipule el contenido de una forma u otra, esta información va e una parte de la comunicación que se llama Header (cabecera), en el header se incluye también información relativa a las Cookies y/o cualquier modificación con la función header () de php (entre otras funciones)

Después de entregar esta información envía el contenido que se busca, en nuestro caso el código HTML (también puede enviar texto sin formato o otro tipo de archivos).

Siempre en ese orden:
Servidor - Cliente
[Header fields]
[Content] (normal mente)

Antes de enviar cualquier contenido (HTML) el servidor ("Apache-PHP", por ejemplo) envía las cabeceras, para seguir el protocolo, una vez enviadas no se pueden modificar (como es obvio), tampoco se pueden añadir otras cabeceras, como es tu caso.

La mejor solución ante este problema es guardar cualquier salida ("echo") en alguna variable, y que lo último que salga sea tal contenido.

Por esto no es recomendable mezclar HTML con PHP:

Código PHP:
<!-- En este punto ya han sido enviadas las cabeceras -->
<html>
<head>
<title>Algo</title>
</head>
<body>
<?php echo $body;?><!-- esta no solo no es una buena forma sino que además
resulta sucia y difícil de mantener -->
</body>
</html>

OK MUCHAS GRACIAS!!!!! ME HA QUEDADO COMPLETAMENTE CLARO