Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/09/2004, 06:17
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Es por la forma que funciona HTTP, el protocolo de la web. Cuando el navegador envia una peticion al servidor, envia unas cabeceras, el servidor devuelve otras cabeceras mas el HTML de la pagina (o el HTML generado por el script PHP). El orden es fijo, primero todas las cabeceras y luego el contenido. Cuando ejecutas un script PHP, puedes enviar cabeceras de varias formas: directamente con header(), o con setcookie() y session_start(), ya que las cookies se crean con cabeceras (session_start() solo si propagas el SID por cookies). Segun va generando salida el script PHP, el servidor web generalmente la va enviando al navegador. Asi que si envias salida antes de enviar la cabeceras** con PHP, el orden que comente antes se rompe y las cabeceras no son enviadas. Por eso debes poner el codigo PHP que genera cabeceras antes del codigo que genera salida.

Saludos.

** generalmente, ya que se puede configurar PHP y el servidor web para que no envie la salida hasta que finalice el script. En este caso, el codigo PHP que genera cabeceras puede estar en cualquier punto.
__________________
Josemi

Aprendiz de mucho, maestro de poco.