Moin!
gibt es eine Möglichtkeit übergebene POST-Variablen zu löschen?
Sinn ist das, falls der User auf aktualisieren klickt, die Daten nicht nochmals verfügbar sind (werden in DB geschrieben)
Ich habs schob mit $_POST["aby"]=""; und unset($_POST); probiert, leider ohne erfolg
Das geht so nicht!
Bedenke den Weg, den die Daten nehmen. Der Benutzer gibt etwas ins Formular ein, und beim Abschicken wird ein POST-Request an den Server geschickt, der daraufhin die POST-Daten verarbeitet.
Beim Reload sendet der Browser die eingegebenen Formulardaten in einem erneuten, identischen POST-Request einfach nochmal - der Server fängt damit wieder an zu arbeiten.
Das bedeutet: Entweder mußt du verhindern, dass du zweimal mit identischen Daten arbeitest. Das funktioniert z.B., indem du als hidden-Feld eine eindeutige ID mitsendest und vor der Verarbeitung prüfst, ob du diese ID schon vorher mal empfangen hast - in diesem Fall brichst du die Verarbeitung dann ab, informierst den User darüber, und bietest Abhilfe an (oder auch nicht).
Oder (einfacher) du nimmst dem User einfach die Seite mit dem POST-Request weg, indem du den POST-Request nicht mit der Ausgabe einer kompletten Seite beantwortest (diese Seite kann man mit Reload neu laden), sondern mit einem Redirect auf eine Ergebnisseite, welche vom Browser dann mit einem (formulardatenlosen!) GET-Request geholt werden.
Also POST -> Verarbeitung und Redirect auf Danke-Seite (oder so ähnlich) -> Danke-Seite ausgeben.
Die Danke-Seite kann dabei durchaus vom selben Skript ausgegeben werden. Reloads beziehen sich dann immer auf die GET-URL der Danke-Seite - und damit entsteht kein Schaden, weil keine Formulardaten mehrfach verarbeitet werden.
- Sven Rautenberg
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|