Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/06/2004, 08:05
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por qué las funciones header() le estas enviando cabeceras HTTP al "cliente" .. pero el flujo del script PHP continua hasta su final. Por eso, al usar tus "exit" detienes la ejecución de ese script en ese punto.

Lo "normal" es que si tu mandas una cabecera tipo "Location" (esto es própio del protocolo HTTP no de PHP ni de ASP ni de ningún otro lenguaje .. lo único es que con PHP "lanzas" esas cabeceras vía la función header() .. lo mismo que en ASP tiene sus response.nosecuantos ... o similar) le estás diciendo al "cliente": cambia la página que está viendo, pero .. PHP no entrega esas cabeceras al cliente hasta que no termine su ejecución completa del script en curso .. por eso .. pese que tu has lanzado esa cabecera .. todavía PHP no la envia por qué no terminó su ejecución. Con "exit" fuerzas a su fin y por ende a entregar esas cabeceras.

El "buffer" de salida de PHP se puede controlar con várias funciones .. Por si te interesa:
http://www.php.net/manual/en/ref.outcontrol.php


Un saludo,