Überprüfung ob Formular 2- mal abgesendet wurde

  • Hey,


    ich möchte eine f5-sperre einbauen in mein Formular. Nun möchte ich diese Sperre aber erst ausführen, wenn das gleiche Formular 2mal abgesendet wurde.

    Ich gebe dem formular ein Token mit, die mit der function uniqid() erstellt wird. Diesen Token speichere ich dann in einer Session.


    Würde es denn gehen, wenn ich jetzt den Token in einen array mache und dann in ne Session abspeichere und wenn das selbe formular nochmals abgesendet wurde dann müssen ja in der Session 2 Werte stehen, weil beim array dann es hinzugefügt wird. Und dann kann man count bei der Session ausführen, und wenn die Session einen größeren key als 0 hat, dann soll das Script abgebrochen werden mit exit.


    Ist das so ne gute Möglichkeit oder habt ihr andere Einfälle wie man es machen kann?


    Ich möchte halt, dass das script erst abgebrochen wird wenn das Formular 2-mal abgesendet wurde.


    Stef

  • So ganz verstehe ich nicht was du damit erreichen möchtest...


    Hier etwas einfachere Methoden. Wenn es ein Formular ist das nur einmal ausgefüllt werden darf, wie Beispielsweise eine Aufforderung zur Passwortänderung dann wäre es am besten einen Eintrag in einer Datenbank meinem Key zu machen. (sUd8dja9df7sdz897a). Mit diesem Key kann er dann per formular.php?key=sUd8dja9df7sdz897a einmal das Formular absenden. Dannach wird der Key aus der Datenbank entfernt oder als verbraucht gekennzeichnet.


    Wenn du nur das doppelte absenden verhindern möchtest, dann erzeuge einfach eine Formular-Session sobald er auf die Seite klickt und zerstöre diese beim Absenden.

  • Mein Ziel ist es, dass der jenige, der das Formular bereits abgesendet hat nicht das Formular nochmal absenden kann mit F5 oder auf den Pfeil gehen und wieder absenden. Zuerst muss er dann die Seite wieder neu laden.


    Also:


    Formular -> Abgesendet -> Besucher klickt F5 -> ausführen von Überprüfung ob eine Session mit dem selben Token besteht und wenn ja, exit; (weiterer Programmcode blockieren) -> Besucher klickt Pfeil zurück Taste (Script ist weiterhin blockiert) -> Besucher muss Seite neu laden.


    Und dann gehts wieder von vorne los.

  • maulepan2: Was ist denn eine Formular-Session?


    Stef: Mit $_SESSION funktioniert es zwar, z. B.:

    aber dann bleibt das Formular für die gesamte Session gesperrt; ich bin mir nicht sicher, ob das gewollt ist.

    Letzlich kommst Du aber um Prüfungen gegen die Datenbank nicht umhin, falls beim ersten Aufruf schon Werte gespeichert werden sollen.

  • Und was bringt es ? Es wird doch immer die Session angezeigt.


    Ich benutze dafür keine DB.


    Habe es nun mit der function header(); probiert. Hatte so meine Probleme damit mit headers already send aber konnte es dann noch beheben.


    Code:

Jetzt mitmachen!

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