Post Variablen und Browser aktualisieren

atlantyz

Erfahrenes Mitglied
Hallo,

ich weiß, das Thema Post Variablen und Browser aktualisieren wurde hier schon oft diskutiert. Allerdings habe ich über die Suche nichts passendes gefunden.

Ich habe versucht das erneute Senden der Post Variablen beim drücken des "Zurück" Buttons zu umgehen, indem ich eine "Zwischenseite" eingebaut habe, die mich weiterleitet.

So nun folgendes: ich bin auf Seite 1 (Übersicht), gehe auf Seite 2 (Formular) gebe dort Daten ein und sende die per Post an Seite 3, die die Daten verarbeitet und mich anschließend auf Seite 4 umleite, die mich einfach nur zurück auf Seite 1 leitet.

Nun sollte ich ja eigentlich... auf Seite 4 zurück kommen (da die mich ja wieder zurück leiten sollte, sollte also Seite 1 wieder nagezeigt werden), wenn ich denn Zurück- Button des Browsers drücke. Tatsächlich komm ich aber auf Seite 2 und kann alle daten nocheinmal eingeben. und noch besser: er fragt mich wieder, ob ich die Post Variablen nochmal senden will.

D.h. die ganze Umleiterei nutzt mir überhaupt nix... ich hab echt keinen Plan was da los ist.

Ich leite die Seiten manuell mit Javascript weiter:

Code:
<script type='text/javascript'>
 location.href='http://localhost/seite4.html';
 </script>

Oder denk ich da irgendwie falsch und das geht so einfach nicht
 
Hi, also ich würde (fast) generell von Umleitungen mittels JavaScript abraten, es gibt eine Methode die meistens deutlich besser geeignet ist, nämlich das Weiterleiten per HTTP, das kannst due dann folgendermassen realisieren:
PHP:
$ziel = 'Seite auf die du weiterleiten willst';

header('HTTP/1.1 303 See Other');
header('Location: $ziel');
exit;
Zu beachten ist bei diesem Ansatz, dass keine Ausgaben (echo und co.) zum Klienten geschickt werden, bevor die Zeile mit den header()-Aufrufen kommt. Falls du schon vorher Daten ausgibst, sollten dir die Funktionen zum Output Buffering entgegen kommen, du könntest zum beispiel als 1. Zeile in alle deine PHP-Dateien schreiben
PHP:
ob_start();
damit kannst du immer Header senden und die Ausgabe erfolgt sobald das PHP Script fertig ist.

Hoffe das hilft weiter, auch wenn ich gerade keine Ahnung habe, was bei der JavaScript Variante schief läuft.
 
Danke, ich werde das nochmal ausprobieren...

ich versteh das mit dem Javascript auch nicht. Der überspringt die Seite aber auch nicht (hab ich zuerst gedacht), denn wenn ich sie nicht weiterleiten lassen, wird sie angezeigt.

Was ich auch nochmal testen werde: nen manuellen Link, über den ich von Seite 4 auf Seite 1 zurück geleitet werde und dann mal gucken, was passiert wenn ich auf den Zurück Button klicke. :-)

Spannend das alles :-)
 
Hi,

ich bekomms einfach nicht hin... ich drück den Zurück Button des Browsers und er macht dieses "Ich sende die Post Dateien nochmal" Spielchen immer noch. Das mit dem header kapier ich nicht (irgendwie reagiert der da gar nicht drauf). Nun hab ich mir überlegt... gibts nicht irgend ne andere Möglichkeit, dass man den Zurück-Button unschädlich machen kann?

Oder kann mir das jemand mit den headern nochmal erklären? Ich hab danach gegoogelt... aber das was ich gefunden hab kapier ich auch net... :-)

Ich benutz sessions von php. Kann man über die vielleicht noch irgendwas machen, dass der Zurück Button das Post nicht neu sendet
 
Hi, also erstmal folgendes: am bsten erstmal im Script diese Zeilen einfügen, dass hilft ungemein beim Finden von Fehlern:
PHP:
error_reporting(E_ALL);
ini_set('display_errors', true);
Ansonsten evtl. mal die Zeilen für die Weiterleitung umbauen in
PHP:
header('HTTP/1.1 303 See Other', true, 303);
header('Location: $ziel');
Sollte es dann immer noch nicht funktionieren, bitte mal die genaue Fehlermeldung posten.
 
Zurück