Also:
1. Client fordert eine Seite von einem Server an
2. Server überprüft (je nach config), was es ist (html, php, perl, cgi etc.)
3. Wenn es in unserem Falle eine PHP-Datei ist, dann liefert er die Datei nicht direkt aus, sondern übergibt sie ersteinmal an den PHP-Interpreter
4. Der PHP-Interpreter "interpretiert",durchläuft das PHP-Script
5. Alle Ausgaben, die mit echo, print oder ähnlichem gemacht werden, werden nun an den Client weitergegeben. In der Regel sollten das also HTML-konforme Ausgaben sein.
5.1. Wenn nun im PHP-Script irgendwo eine header()-Anweisung steht, dann sollte dies geschehen, bevor eine Ausgabe mit print oder echo geschieht. Dieser Befehl sendet dann den im Parameter übergebenen String als Header-Befehl. (Zur Erinnerung: Ein HTTP-Paket ist aufgeteilt in Header und Content. Im Header stehen alle Steuer- und Status-Informationen, im Content der eigentliche Inhalt).
5.1.1. Wenn im PHP-Script nun ein header("Location: blabla.htm"); steht, wird der Client dann zwar umgeleitet, ohne daß der Benutzer es mitbekommt, das PHP-Script wird trotzdem fertig abgearbeitet, es wird dort nicht automatisch abgebrochen oder so. Erst der Client erhält mit diesem Header-Befehl die Aufforderung, nun blabla.htm anzufordern, das tut nicht der Server.
Ich hoffe, das war richtig und nicht zu konfus.
Benjamin