Por que detener la ejecución de un script despues de redireccionar mediante headers

Inicio ¿Sidebar? RSS @MisAlgoritmos at Twitter

Por que detener la ejecución de un script despues de redireccionar mediante headers

Bueno, la respuesta la acabo de conocer, y creo que al igual que la mayoría cargué con esta duda durante bastante tiempo :D Cuando enviamos un header de la siguiente forma:
header("location: direccion_destino");
Lo que estamos haciendo es un redireccionamiento del usuario a la direccion_destino, pero esto no garantiza que el usuario llegue a su destino, ya que en el servidor no detiene la ejecución del script y continua la lectura línea a línea, y si por alguna razón existiera otro header("location: direccion_destino_dos"), este enviará a la direccion_destino_dos causando un error lógico.
Las siguientes líneas de código envían al usuario a direccion_destino_tres.
	header("location: direccion_destino_uno");
	header("location: direccion_destino_dos");
	header("location: direccion_destino_tres");
Y la solución pues es más que obvia, solo agregar un exit() o un die() despues de el envío del usuario y todo quedará solucionado.
	header("location: direccion_destino_uno");die();
	header("location: direccion2");
	header("location: direccion3");
La solución a todo este rollo la he encontrado en thescripts - developer community, y de puuura casualidad :D.

...Problem 5: Just because you send a Location header does not mean the script stops here. You'll carry on to the next bit, and possibly send more Location headers. If you want to send the header then stop, use exit()....

Seguido de eso, hice las pruebas y voala!! :D ... funcionó!
There are 6 comments. for this entry.