Woher kommt denn des POST ?

  • Moin.
    ich wollte mir eine neue Variante des "Form-Wächter" (also mehrfach abschicken der Form vermeiden) schreiben, ohne den User weiter zu leiten.
    Im Grunde eine einfache Sache:
    - user tippt was ein -> wenn richtig, dann Speichern oder Löschen ...
    - das Abgeschickte ($_POST) in session merken
    - wenn genau die gleiche Form nochmal rein kommt -> durchfallen lassen oder meckern.


    Mein Problem: Ich lösche (unset) alle ungewollten $_POSTs. Aber beim 2ten mal "F5" sind alle $_POSTs wieder da ?(
    Hier mal das Script - sollte relative einfach zu lesen sein:

  • ob du die unstetes oder nicht spielt keine rolle die POST sachen sind ja eh nur solange da wie das script läuft.



    beim ersten absenden ist $_SESSION['formGuard'] leer also wird das absenden verarbeitet
    beim ersten mal F5 ist $_SESSION['formGuard'] belegt und es wird nichts ausgefühert aber $_SESSION['formGuard'] wider gelöscht
    beim zweiten mal F5 ist $_SESSION['formGuard'] wieder leer also wird das absenden verarbeitet

  • Stimmt, ich bin ja auch wiedermal daneben gewesen :D
    Post kommt doch bei F5 vom browser. Da kann ich POST löschen wie ich will - kommt ja immer wieder neu rein :D


    Hab aber festgestellt, dass ich die SESSION ja nicht löschen muss. Wenn eine neue Form abgeschickt wird, wird die SESSION ja überschrieben.
    Und microtime() in der form_id ändert sich die id bei jedem "echten" Abschicken der Form.
    Dann sollte das Ding funktionieren =)


    Hab es mal erweitert auf GET oder POST.
    Achja - das Löschen von GET/POST macht dann doch noch Sinn, da die Eingabefelder nicht mit den zuvor abgeschickten Eingaben gefüllt werden.
    $skip hab ich mir übrigens dafür gedacht, um zB ein hidden field bestehen zu lassen.


    Hier mal das aktuelle Dingens:


    Irgentwelche Ideen? Hab ich was vergessen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!