header-Weiterleitung
SmartyShark
- php
0 wahsaga0 SmartyShark0 Cheatah0 SmartyShark0 Cheatah0 SmartyShark
1 Skeptiker0 Cybaer
Hallo,
ich benutze die Funktion header um an eine andere Datei weiterzuleiten.
Nun davor bin ich aber gezwungen laut Softwarecontext mit echo
etwas auszugeben. Aus diesem Grund leitet header nicht mehr weiter.
Gibt es eine Möglichkeit das zu umgehen?
Gruss
hi,
ich benutze die Funktion header um an eine andere Datei weiterzuleiten.
Nun davor bin ich aber gezwungen laut Softwarecontext mit echo
etwas auszugeben. Aus diesem Grund leitet header nicht mehr weiter.
Welch ein "Zwang" soll da bitte bestehen?
Wenn du das Script sauber aufbaust, dann brauchst du auch nicht zwischendurch irgendwo per echo was rausblasen.
Gibt es eine Möglichkeit das zu umgehen?
Output buffering.
gruß,
wahsaga
hi,
Welch ein "Zwang" soll da bitte bestehen?
Wenn du das Script sauber aufbaust, dann brauchst du auch nicht zwischendurch irgendwo per echo was rausblasen.
Es muss sein, da eine html-ausgabe gemacht wird, die ein "Bitte Warten"-Gif ausgibt also ein img-tag, sagen wir mal im center des screens. Unten wird dann eine Funktion aufgerufen, die etwas dauert.
So und nachdem alles fertig ist, will ich mit header weiterleiten ans Ergebnis. Geht das nur sauber aufbauen mit Output Buffering?
Gibt es eine Möglichkeit das zu umgehen?
Output buffering.
Du meinst mit ob_start() und so? Dachte ich auch schon.
Gruss
Hi,
Es muss sein, da eine html-ausgabe gemacht wird, die ein "Bitte Warten"-Gif ausgibt
das ist nicht kompatibel zu HTTP. Ein Request erzeugt exakt einen Response, niemals mehrere. Was Du vorhast, kann in dieser Form auf keinen Fall klappen.
Cheatah
Hi,
Es muss sein, da eine html-ausgabe gemacht wird, die ein "Bitte Warten"-Gif ausgibt
das ist nicht kompatibel zu HTTP. Ein Request erzeugt exakt einen Response, niemals mehrere. Was Du vorhast, kann in dieser Form auf keinen Fall klappen.
Cheatah
Und wie kann es klappen? Vorschläge von Experten?
Hi,
das ist nicht kompatibel zu HTTP. Ein Request erzeugt exakt einen Response, niemals mehrere. Was Du vorhast, kann in dieser Form auf keinen Fall klappen.
Und wie kann es klappen? Vorschläge von Experten?
ein Response pro Request, ein Request pro Response. Wenn Du zwei Responses haben willst, brauchst Du zwei Requests.
Cheatah
Ok,
ich habe eine Lösung..., aber ich finde diese Lösung nicht schön ehrlich gesagt. Leider fällt mir momentan nix anderes ein. Zwei Requests sind gut und verstehe ich jetz, aber keine Lust jetzt noch ein Request mir auszudenken.
Meine Lösung (Pseudo-Code):
html-Ausgabe
if(html-Ausgabe == OK)
{
echo '<script type="text/javascript">
<!--
document.location.href = "pfad/datei.php";
-->
</script>';
}
Danke trotzdem für die Hilfe...
Gruss
Hallo!
Meine Lösung (Pseudo-Code):
Warum nicht gleich <body onload=".."> verwenden?
mfg
frafu
weil das im meinem Context nicht geht
Hi,
document.location.href = "pfad/datei.php";
Ggf. ist location.replace() vorzuziehen.
Gruß, Cybaer
Öh?
Du weist allerdings schon, was eine Header Weiterleitung ist und vor allem, wie diese funktioniert? Dank der Header weiterleitung, wird kein Content mehr an den Client geschickt, sondern nurnoch die Header angaben inklusive der neuen Zielseite (Location: ...), dies sollte dann als 301 - Moved Permanently oder 302 - Moved Temporarily ausgegeben werden.
Da bringt dir dein echo, welches für die Anzeige eines "Bitte warten" GIF zuständig ist nichts, denn eigendlich sollte bei einer Header Weiterleitung garkein Content übertragen werden, mal abgesehen davon, dass sich KEIN Browser um die Darstellung dieses HTML Codes kümmert, wenn eine Location Angabe im Header mitgesendet wurde.
Gruß!
Hi,
Du weist allerdings schon, was eine Header Weiterleitung ist und vor allem, wie diese funktioniert? Dank der Header weiterleitung, wird kein Content mehr an den Client geschickt,
Hmm, der Content wird ggf. schon geschickt. Er wird nur i.d.R. nicht angezeigt. :)
denn eigendlich sollte bei einer Header Weiterleitung garkein Content übertragen werden,
Eigentlich (laut RFC) sollte bei einer Header-Weiterleitung durchaus Content an den Client geschickt werden (mindestens ein Link mit dem neuen URL) - als Fallback.
Macht aber wohl wirklich kaum einer (inkl. meiner einer). ;-)
Gruß, Cybaer