Nach Formularabsendung 2 Seiten aufrufen

DoItAndLearn

Grünschnabel
Hallo, folgendes Problem:

User füllt ein Formular aus, schickt es ab. Das Formular soll/muß und wird geschickt an eine Seite, die die Daten empfängt. Dort wird dem User eine Bestätigung gezeigt.

Eigentlich muß/soll er die aber nicht sehen, er soll statt dessen wieder auf der Ursprungsseite (die Seite mit dem Formular) landen.

Auf diese Bestätigungs-Seite habe ich aber keinen Einfluß, kann dort also auch nix einprogrammieren, von wegen Weiterleitung, Back-Button oder ähnliches. Dahin müssen aber die Daten gesendet werden, deshalb muß das Formular diese Seite aufrufen.


Ich sehe vermutlich den Wald vor lauter Bäumen nicht bzw. habe heute morgen schon so viele Probleme gelöst, daß mir hier keine (geistige) Energie mehr zur Verfügung steht. :confused:

2 STunden googlen und Forensuche hat keine Lösung gebracht (oder ich habe sie übersehen)

Danke im Voraus für eine sinnige Antwort ;-)
 
Versuch es doch mit:
PHP:
header("Location: die seite");
Dies am Ende des Dokumentes einfügen wo die daten verarbeitet werden.
Übergib dieses mit einer $_GET variable wie true oder ähnliches,
um dann ein erfolgreich raus zu geben.
 
Danke für die Antwort. Entweder sehe ich immer noch den Wald vor lauter Bäumen
nicht, oder ich habe das Problem nicht richtig erklärt.

Meine Frage auf Deine Antwort: Wo soll ich header("Location: die seite"); einbauen?
Nach meinem Verständnis könnte das ja nur auf der Seite geschehen, auf die das
Formular führt. Oder? Auf diese Seite habe ich "programmiertechnisch" aber keinen
Einfluß. Da kann ich nix einbauen.

Ich erkläre es nochmal, vielleicht war es ja mißverständlich:

eine WebSite mit einem Formular:


<form action="http://domain.de/bestätingung.php" method="post" id="form" name="form">
...
<input type="submit" value="Abschicken"/>
</form>
führt natürlich bei Drücken des Submit-Buttons auf die Seite "http://domain.de/besteeeeetingung.php"

Dortin sollen die Daten per POST ja auch übertragen werden. Dem User soll die Seite
aber nicht angezeigt werden. Wird sie aber. Wie umgehe ich das? darum geht es.

auf die Zielseite, auf der die Daten verarbeitet werden, habe ich aber, wie gesagt, keinen
Einfluß. Ich kann dort also kein Redirect, Header oder was auch immer einprogrammieren.

Im Grunde genommen ist die Frage ganz einfach:

Kann ich die Daten per POST (also per Formular) an eine verarbeitende Seite übertragen,
und dem User eine ANDERE Seite als Bestätigung anzeigen?
 
Zuletzt bearbeitet:
Hallo,

so einfach geht das natürlich nicht.

- Die header-Funktion kannst du natürlich nicht nutzen, da du sie einbauen müsstest. Ist ja klar, wie bereits gesagt.
- Die andere Seite kannst du durch irgendwelche Mittel natürlich auch nicht (zum Glück) manipulieren.

Daher gibt es für mich nur folgende Möglichkeiten:

  1. Du sendest die Daten im Hintergrund an die besteeetigung.php, sodass deine eigentliche Seite bestehen bleibt (Stichwort Ajax). Problem ist dabei natürlich, dass du nicht weißt ob es erfolgreich war oder nicht solange dir die andere Seite keinen Wert zurück gibt (daher macht eine Statusmeldung ja auch Sinn!)
  2. Du lässt einfach alles so wie es ist und weisst den Benutzer darauf hin, dass er auf eine Bestätigungsseite weitergeleitet wird und er dies oder jenes doch bitte machen soll um wieder auf deine Seite zurückzukommen.
  3. Du kontaktierst den Programmierer der besteeetigung.php und bittest um Verständnis und Änderung
  4. Du verarbeitest die Daten einfach selbst in einer eigenen besteeetigung.php
Um Zeit und (deine) Nerven zu sparen, würde ich an deiner Stelle doch Variante 2 bevorzugen. Es ist ja keine Schande den Benutzer auf etwas hinzuweisen - hauptsache der Benutzer weiß was mit ihm und seinen Daten passiert.

MfG, teccco
 
Zuletzt bearbeitet:
Die einfachste Lösung wäre m.M.n. ein Frameset aufzusetzen mit einer lokalen Datei und deiner Bestätigungsdatei. Dadurch sollten die Daten ankommen und du kannst per Timer im Frame (Stichwort: Meta-Refresh) den Kunden wieder "zurückholen".
 
Ich klinke mich hier nochmal ein:

@Flex:

An diese Möglichkeit hatte ich garnicht bedacht gehabt. Sie ist simpel aber deprecated ;-) Außerdem besteht immernoch das Problem, dass man nicht weiß ob der ganze Vorgang erfolgreich war oder nicht.
 
Es spielt keine allzu große Rolle, ob die Transaktion (Datenübermittlung) erfolgreich war.
Und da ich eh davon ausgehen kann, daß sie das in den meisten fällen sein wird, brauche
ich die Bestätigung nicht.

Das mit dem Frameset ... hätte mir auch selbst einfallen können. Aber manchmal sieht
man den Wald vor lauter Bäumen nicht. :-D

Danke jedenfalls für Eure Hinweise und daß Ihr hier ein wenig Hirnschmalz gelassen habt.
Ich werde morgen mal das mit dem Frameset testen ...
 
Zurück