Antworten auf deine Fragen:
Neues Thema erstellen

Seitenrefresh durch POST-Daten verhindert

Top_Gun

Aktives Mitglied

Ich hab mir mal wieder was tolles überlegt was nicht funktioniert. Vielleicht hat ja einer von euch eine Idee...

Via Login gelange ich auf meine index.php da ich mit Sessions arbeite ist hier der header ja schon gesendet.
Meine index.php entscheidet über die get-Variable ID welche weitere php-Datei includiert wird.
In der includierten Datei (Aufruf über index.php?ID=formular) habe ich ein Formular welches die Daten an sich selber schickt und auswertet.
Die Auswertung gibt mir eine Meldung aus.
Nach dieser Auswertung möchte ich nun auf das Formular zurück geleitet werden. An der Stelle kann ich aber header nicht verwenden da der schon gesendet wurde. Also benutze ich
<meta http-equiv="refresh" content="2; URL=index.php?id=formular">
aber dann kommt eine Abfrage ob ich die POST-Daten erneut senden möchte.
Dies ist natürlich nicht erwünscht und an der Stelle sollen die POST Daten auch nicht mehr existieren...

Via unset $_POST zu löschen funktioniert zwar aber die POST Daten die der Browser erneut senden will bleiben vorhanden...

Ich weiß nicht weiter... mein Kopf raucht schon, ich hab mich irgendwo verzettelt... Hilfe...
 

AW: Seitenrefresh durch POST-Daten verhindert

Eine Weiterleitung an die selbe Datei ist ne schlechte Lösung.
Bessere Lösung wäre, die Daten an eine andere Datei zu senden, dort auswerten und dann mittels Header(Location) wieder zum Forumular zurück.
 
AW: Seitenrefresh durch POST-Daten verhindert

Eine Weiterleitung an die selbe Datei ist ne schlechte Lösung.
Bessere Lösung wäre, die Daten an eine andere Datei zu senden, dort auswerten und dann mittels Header(Location) wieder zum Forumular zurück.
Ich finde eine Datei ist viel komfortabler als pro Formular zwei zu haben... bisher habe ich immer ein und die selbe zum abschicken und auswerten benutzt... hatte aber nie eine "Weiterleitung" zurück zum Anfang vor...

Vielleicht weiß jemand anderes ne Lösung?
 
AW: Seitenrefresh durch POST-Daten verhindert

Aber so besteht die Gefahr das du eine Endlos-Schleife verursachst ... und wäre ich mit einer zusätzlichen Datei auf sicherer Seite.

Oder du benutzt beim Formular einen zusätzlichen Parameter. Mittels diesen wird dann ein Refresh verhindert oder gesetzt, je nach Bedingung. Wäre also noch eine Lösung.
 
AW: Seitenrefresh durch POST-Daten verhindert

Aber so besteht die Gefahr das du eine Endlos-Schleife verursachst ... und wäre ich mit einer zusätzlichen Datei auf sicherer Seite.
Wenn ich das Problem mit den POST-Daten nicht in den Griff bekommen hätte ich evtl die Endlosschleife, ansonsten ist doch kein Problem von Formular zur Auswertung zurück zum Formular...

Oder du benutzt beim Formular einen zusätzlichen Parameter. Mittels diesen wird dann ein Refresh verhindert oder gesetzt, je nach Bedingung. Wäre also noch eine Lösung.
Mir kam eine ähnliche Idee, ich habe bei dem Refresh ein & (ohne weitere Variable) mit hinzugefügt, so denkt der Browser es ist eine andere Seite und verwirft die POST-Daten...
Ob ich (dann wohl bei der Auswertung) mit ner kompletten GET-Variable arbeite muss ich mir noch überlegen... sehe da noch keine Notwendigkeit oder Vorteile...

Ich danke dir für deine Überlegungen und Hinweise.

Sollte noch jemanden andere Ideen haben, immer her damit.

EDIT: Wobei ich natürlich mit ner extra GET-Variable die von die angesprochene Endlosschleife komplett ausschließen könnte... na mal überlegen...
 
AW: Seitenrefresh durch POST-Daten verhindert

Oder ......... wenn das Formular erfolgreich ausgewertet wird (was weis ich was dort passiert) kannst du mittels PHP ja deine Zeile <meta http-equiv="refresh" content="2; URL=index.php?id=formular"> setzen lassen, sofern die Auswertung über den HTML Body-Bereich steht. In PHP gibt es übrigens auch header("refresh:3;url=seite.php"); :)
 
AW: Seitenrefresh durch POST-Daten verhindert

Oder ......... wenn das Formular erfolgreich ausgewertet wird (was weis ich was dort passiert)
Ehrlich gesagt sind es ja verschiedene Formulare aber alle gleich konzipiert. Hauptsächlich werden in der Auswertung aber lediglich Datenbankeinträge gemacht.

kannst du mittels PHP ja deine Zeile <meta http-equiv="refresh" content="2; URL=index.php?id=formular"> setzen lassen, sofern die Auswertung über den HTML Body-Bereich steht.
Das mache ich ja auch so, aber wenn du von index.php?id=formular auf action="index.php?id=formular" kommst und dann ein refresh auf index.php?id=formular gemacht wird, fragt dich der Browser ob du die POST-Daten erneut senden möchtest. Und da ist ja das Problem...

In PHP gibt es übrigens auch header("refresh:3;url=seite.php"); :)
Das kann ich nicht verwenden da der header schon gesendet wurde...

Oder hab ich irgendwo nen Denkfehler?
 
AW: Seitenrefresh durch POST-Daten verhindert

Ahahaha... tausend Dank! Da stand ich mir mal wieder selber im Wege...

Also das ganze ist ein etwas größeres Ding, irgendwann hatte ich mal nen Header gesendet (im Zusammenhang mit der Session, ich glaub bezüglich des Caching, aber ich weiß es nicht mehr genau). Nachdem du mich jetzt gefragt hast was genau und ich den nicht finden konnte, hab ich mir das mal ausgeben lassen.
Und siehe da es war lediglich ein Leerzeichen in meiner Template-Klasse zuviel.

Problem gelöst - Top Gun glücklich! ;)
 
AW: Seitenrefresh durch POST-Daten verhindert

Moin,

ich denke mal mit der von PHP

kannst Du diese Geschichte lösen.

MfG Chick
 
AW: Seitenrefresh durch POST-Daten verhindert

Ich muss ganz ehrlich sagen, dass ich nicht mehr weiß was oder ob ich überhaupt getestet habe ob es mit header("refresh:3;url=seite.php") geht nachdem ich festgestellt hatte, dass ich doch keinen header gesendet hatte...
Heute kann ich jedenfalls sagen, dass ein Refresh auf die selbe URL, egal ob über den Metatag oder über den header(), den Browser veranlasst nachzufragen ob die POST-Daten erneut gesendet werden sollen.
Dies lässt sich aber, wie oben schonmal erwähnt, damit umgehen, dass man der Refresh-URL ein & bzw ? anhängt.

Ob das nun eine zufriedenstellende Lösung ist muss jeder für sich entscheiden.

@Chickenshooter: Dein Hinweiß mit der Ausgabepufferung hat mich auch nicht weitergebracht. Trotzdem danke.


Thema beendet.
 
Zuletzt bearbeitet:
AW: Seitenrefresh durch POST-Daten verhindert

Hi,

also wenn ich es richtig verstanden habe, geht es lediglich noch darum, dass nach dem senden der Daten (post) eine ausgabe erfolgen soll ohne nochmals einen refresh zu erhalten?

Wenn ja - du nutzt ja bereits Session. Ergo kannst du im Hintergrund die Daten in die Session schreiben (bevor der header aufgerufen wird lässt du auch die Daten verarbeiten), danach den header auf die gleiche Seite setzen und die Ausgabe erledigen. Flag an die URL fertig. Wenn du nun aus welchen Gründen auch immer noch mal auf die daten zurückgreifen musst, kannst du auf die Session zurückgreifen. Geht der User nun von dieser Seite weg, kannst du auch die Daten in der Session löschen.

Somit hast du im Gunde für den User einen Sichtbaren post, wobei im hintergrund noch ein zweiter abgelaufen ist. Und die post-Daten sind auch nicht mehr vorhaden. Sprich ein reload erfolgt ohne Nachfrage des nochmaligen senden.
 
AW: Seitenrefresh durch POST-Daten verhindert

also wenn ich es richtig verstanden habe, geht es lediglich noch darum, dass nach dem senden der Daten (post) eine ausgabe erfolgen soll ohne nochmals einen refresh zu erhalten?
Nein. Ich bin, wohl einer der wenigen, die sich lieber auf ein refresh mehr berufen. Darum geht es nicht.

Ich sende meine Formulardaten via POST zu meiner Verarbeitung und Ausgabe. Diese Verarbeitungs und Ausgabe Seite soll zu sehen sein. Von dort soll es dann aber automatisch zurück zum Formular gehen.


Das Problem dabei ist, dass Formular und Auswertung in der selben Datei zu finden sind und somit die selbe URL haben. Ich schicke also ein POST an die URL und will danach ein refresh auf die selbe URL machen. Dies hat zur Folge, dass ich gefragt werde ob ich die POST-Daten erneut senden will.

Mir ist klar, dass ich das ganze anders lösen könnte und das es sicherlich Leute gibt die einen anderen Weg eleganter finden. Das will ich so aber nicht :D
Ich werd halt ein & bzw ? an die refresh-URL hängen, das funktioniert...
 
AW: Seitenrefresh durch POST-Daten verhindert

Na dann habe ich dich ja schon richtig verstanden. Ob du mein Ansatz verstanden hast - nach deiner Antwort eigentl. - nö ;)
 
AW: Seitenrefresh durch POST-Daten verhindert

Ob du mein Ansatz verstanden hast - nach deiner Antwort eigentl. - nö ;)
Hmm, ganz klar: wenn du mich richtig verstanden hast, hab ich dich nicht verstanden :D

Ich werd mir deinen Ansatz nochmal durchlesen und drüber nachdenken, vielleicht finde ich ja noch den richtigen Weg...
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.940
Beiträge
1.540.016
Mitglieder
68.075
Neuestes Mitglied
falke69
Oben