Formulardaten nach Bestätigungsnachricht loeschen
Thomas
- php
0 Dieter Raber0 Utz0 Sven Rautenberg
Halli Hallo,
ich stelle meine Frage ins Forum, da ich trotz herumrecherchiert und ausprobiert noch keine passende Loesung gefunden habe.
Ich habe ein Kontakt.htm, die mit einem form on Submit ein uebertragen.php aufruft.
Bis da funktioniert alles richtig, die Daten werden nach Fehlern
überprüft usw.
Wenn Name, eMail, Message Felder alle ausgefuellt sind, dann
wird eine Bestaetigunsnachricht angezeigt. Genau jetzt moechte ich,
dass die Daten nach einem HistoryBack geloescht werden...
Ich habe alles ausprobiert: unset($...), $res = $... usw.
Hat Jemand damit schon Erfahrung gehabt ??
Danke sehr im voraus für Ihre Antwort,
MfG Thomas
Hallo Thomas,
Du koenntest zB. mit header() dafuer sorgen, dass die Seite nicht gecacht wird.
Gruß,
Dieter
Hallo,
hm...wenn Du PHP als Kategorie angibst, dann klingt das so, als würdest Du die Daten zuerst irgendwo hinschreiben um sie dann gleich wieder dort löschen zu wollen :-)
Ich nehme aber eher an, Du willst, dass die Daten auf dem Client nicht mehr zu sehen sind?
Geht mt PHP nicht, ist ja eine clientseitige Sache. Und auch ein wenig Tricky, da die Browser das irgendwie hartnäckig nett finden, die letzten Daten wieder und wieder anzuzeigen, auch wenn da ganz explizit value="" im Code steht.
Möglichkeit: gehe nach Laden der Seite (Event-Handler onload z.B.) mit JavaScript über alle Formularfelder und setze nochmal die values auf leer. Da das onload passiert, müsste a) der Browser das als Änderung akzeptieren und nicht mehr älteres Zeug anzeigen, b) allerdings u.U. die alten Daten kurz zu sehen sein.
Grüße,
Utz
Hallo Utz und Danke für deine Antwort !
Das Problem, wenn ich ein sogennantes Refresh von den Values mache,
ist, dass die Daten auch weg sind auch, wenn nur noch ein Feld auszufuellen war.
Z.B:
Der Client hat seine eMail-Adresse vergessen, er klickt auf
"zurueck zum Formular" nach der Fehlermeldung und schon sind alle
Felder wieder leer...
Sollte ich vielleicht 2 php Datein nacheinander aufrufen (eine,
wenn ok, eine wenn fehlerhaft), geht's sowas ??
Danke nochmal,
MfG Thomas
Hallo,
hm...wenn Du PHP als Kategorie angibst, dann klingt das so, als würdest Du die Daten zuerst irgendwo hinschreiben um sie dann gleich wieder dort löschen zu wollen :-)
Ich nehme aber eher an, Du willst, dass die Daten auf dem Client nicht mehr zu sehen sind?
Geht mt PHP nicht, ist ja eine clientseitige Sache. Und auch ein wenig Tricky, da die Browser das irgendwie hartnäckig nett finden, die letzten Daten wieder und wieder anzuzeigen, auch wenn da ganz explizit value="" im Code steht.
Möglichkeit: gehe nach Laden der Seite (Event-Handler onload z.B.) mit JavaScript über alle Formularfelder und setze nochmal die values auf leer. Da das onload passiert, müsste a) der Browser das als Änderung akzeptieren und nicht mehr älteres Zeug anzeigen, b) allerdings u.U. die alten Daten kurz zu sehen sein.
Grüße,
Utz
Hallo,
ich löse solche Fälle üblicherweise so - mit drei Seiten:
Seite B überprüft, ob alles da ist. Wenn ja: Weiterleitung zu C. Wenn nein: Weiterleitung zurück zu A, wobei die vorhandenen Daten z.B. als URL-Parameter übergeben werden.
Seite A würde in Deinem Fall nun onload die values aus den URL-Parametern einsetzen. Wenn da nix ist, bleiben die Felder leer, wenn da was ist, werden sie gefüllt.
Grüße,
Utz
Moin!
ich löse solche Fälle üblicherweise so - mit drei Seiten:
...in einem einzigen Skript. Stichwort: Affenformular.
http://www.php-faq.de/q/q-stil-normalform.html
- Sven Rautenberg
Danke an Euch !!!!
Ich versuche so.
MfG,
Thomas
Moin!
ich löse solche Fälle üblicherweise so - mit drei Seiten:
...in einem einzigen Skript. Stichwort: Affenformular.
http://www.php-faq.de/q/q-stil-normalform.html
- Sven Rautenberg
Moin!
Wenn Name, eMail, Message Felder alle ausgefuellt sind, dann
wird eine Bestaetigunsnachricht angezeigt. Genau jetzt moechte ich,
dass die Daten nach einem HistoryBack geloescht werden...
Warum? Welches Effekt versprichst du dir davon? Was willst du damit erreichen oder verhindern?
Dass ein Browser beim Betätigen des Zurück-Buttons den ausgefüllten Zustand des Formulars zeigt, ist Sache des Browsers, soll heißen: Das kann dir so passieren, oder auch nicht (den IE oder auch den NS4 würde ich in die Kategorie "eher nicht" einordnen, Opera ganz klar in die Kategorie "der macht das zum Glück so").
Fakt ist: Die Formularseite wurde geladen und ausgefüllt. Du kannst diesen Teil nicht mehr beeinflussen, der Eintrag sowohl in der Browser-History als auch in sonstigen Speichern (Formulareingaben werden auch gern woanders gespeichert) ist erfolgt und entzieht sich ziemlich effektiv deinem Zugriff.
Wenn du mal vollkommen unabhängig davon, WIE es umzusetzen wäre, erklären würdest, WAS genau du erreichen willst, gibts bestimmt auch andere Lösungswege.
Ich habe alles ausprobiert: unset($...), $res = $... usw.
Das kann alles nicht funktionieren. Das spielt sich in PHP ab, nicht im Browser, der das Formular enthält.
- Sven Rautenberg