phpbar.de logo

Mailinglisten-Archive

[php] header("Location: ...") tut nix

[php] header("Location: ...") tut nix

Sebastian Mendel lists at sebastianmendel.de
Fre Sep 28 11:26:35 CEST 2007


Norbert Pfeiffer schrieb:
>> und die Ausgabe der Header-Zeile erreicht erst den Browser wenn
>> PHP/Apache sich dazu entschieden haben die Ausgabe auch abzuschicken
>> ... (was wiederum von vielen Faktoren abhängt)
> ebend,
> und wie kann man das eventuell "erzwingen"?
> z.B. hier:
> mit http://www.uris.de/test/test.log.php kann man ein Logfile ansehen
> und mit http://www.uris.de/test/test.php die Aktion, wie heute Nacht
> beschrieben, starten ...
> 
> Sowohl hier local als auch online erfolgt die Weiterleitung erst nach
> dem vollstaendigen Ablauf des Scriptes, obwohl in jeder Schleife mit
> flush(); eigentlich eine Ausgabe erzwungen werden soll.
> 
> Wie erreicht man das sofortige Absenden des Headers ?

na eben mit exit - ist die einzig zuverlässige Methode

nach einem Location: noch etwas ausführen zu wollen ist eh zu unsicher da
man eben nicht weiß ob die Ausgabe sofort gesendet wird oder nicht, und ob
der Browser sofort und ob überhaupt daraufhin umleitet oder nicht und der
Apache daraufhin das Script nicht eh abbricht ... also kann man auch gleich
ein exit hinsetzen, oder optional noch eine Seite ausgeben, die nochmal
extra auf die Umleitung hinweißt.

ein Faktor der das tatsächliche absenden des Headers beeinflusst ist z. B.
output buffering (und eventuell ähnliche Sachen nochmal im Apache)


> Sorry, mal wieder zu hastig abgeschickt ... :-((

???

-- 
Sebastian


php::bar PHP Wiki   -   Listenarchive