[PHP] nach reload formular inhalt nicht erneut senden

almdudler777

Well-known member
ID: 115892
L
21 Mai 2006
45
1
hi,

habe ein Problem:

Möchte eine komplexere Suchfunktionen realisieren. Damit der Benutzer nun nicht immer die Sachen neu angeben muss wird alles in einer Session zwischengespeichert.. oder in eine sql tabelle wird sich zeigen....

nun kann es aber passieren, das der Benutzer z.b. mittels javascript in seine History zurück geht und an die stelle kommt wo er die eingaben getätigt hat.

Wie verhindere ich, das z.b. der Firefox fragt ob Post daten erneut gesenden werden sollen? Kann man ihn mit einer HEADER nachricht dazu bewegen post daten nicht zu cashen? und nicht zu fragen ob sie nochmal geschickt werden sollen?

MFG daniel & danke im voraus
 
Wenn ich's recht sehe, müsste schon ein einfacher Header-Redirect die Problematik lösen. Sprich:
PHP:
 // Formularverarbeitung
  Header('Location: https://wo.auch.immer.du.hinwillst');
  die;
 
klar ich könnte ihm verbieten wieder auf die eingabe seite zu gehen ^^ und ihn einfach umleiten...

aber es soll ja möglich sein überall hinzugehen... nur das blöde popup von wegen 'seite enthält Formular daten... nochmal senden?' darf nicht kommen...

EDIT: soll unteranderem an einer anderen stelle vorkommen, wo ein Flood verhindert werden soll sprich nach dem Absenden, darf mittels F5 nicht direkt wieder abgeschickt werden. Kenne ja die Benutzer dann hat man aufeinmal zweie gleiche Kunden angelegt oder so ^^
 
Du sollst ihm nix verbieten. Du machst nach der Formularverarbeitung einen Redirect auf eine andere oder die gleiche Seite. Dadurch wird der Post invalide und Dein Problem verschwindet.

Probier's aus.
 
ok werde ich nachher machen :) ist der dann komplett weg auch wenn er oben auf zurück klickt?

EDIT: sehe gerade wenn man hier im Forum nen neuen Beitrag verfasst und anschließend F5 drückt, will er auch nicht nochmal senden... werde mal gucken bin gespannt ob nen simples Redirect da helfen wird ^^ und sonst kann man sich die forensoftware wo runterladen ? ^^
 
Zuletzt bearbeitet:
Oder du fügst in dem Formular ein Hidden-Feld mit einem Hash ein, der nur einmal verwendet werden kann. Also wird das Formular ein zweites Mal mit dem selben Hash abgesendet, ist der Aufruf ungültig.
Das bringt zusätzlich noch eine Sicherheit gegen XSRF-Angriffe.
 
Oder du fügst in dem Formular ein Hidden-Feld mit einem Hash ein, der nur einmal verwendet werden kann. Also wird das Formular ein zweites Mal mit dem selben Hash abgesendet, ist der Aufruf ungültig.
Das bringt zusätzlich noch eine Sicherheit gegen XSRF-Angriffe.


richtig... allerdings ist die sicherheit irgendwo nur 2t rangig das script ist jetz schon sicher genug... geht wirklich nur um diese nervige Aufforderung zur neusendung xD