mike: Daten post get los werden

Hallo Zusammen,

erstmal frohes neues Jahr! Alles gute euch allen.

So, habe ein kleines PHP-Skript gemacht.
Eine Liste mit Namen auf der man sich eintragen kann.
Wollte eigentlich ein einziges php-file machen.

  • GET in Datenbank schreiben
  • Liste ausgeben
  • Formular für Registrierung ausgeben und submit auf sich selbst

Jetzt habe ich das Problem, dass wenn ich einmal das Formular ausgefüllt habe werden die Daten nochmals in die Datenbank geschrieben, wenn man auf aktualisieren klickt, da die Daten noch in der URL sind.

Habe mir überlegt, das schreiben in die DB in ein anderes File auszulagern und dann per redirect auf die erste Seite zurück umzuleiten.

Aber es gibt dazu bestimmt eine schönere Lösung. Kriegt man irgendwie die GET-Daten aus der URL, damit man so oft aktualisieren kann ohne das nochmals in die DB geschrieben wird.

Vielleicht den HTTP-Header der Ausgabe manipulieren?

Danke für eure Tipps!

Gruss Mike

  1. Hi!

    erstmal frohes neues Jahr! Alles gute euch allen.

    Dir und allen anderen wünsche ich das auch!

    Jetzt habe ich das Problem, dass wenn ich einmal das Formular ausgefüllt habe werden die Daten nochmals in die Datenbank geschrieben, wenn man auf aktualisieren klickt, da die Daten noch in der URL sind.

    Prüfe, ob die Daten bereits in der DB vorhanden sind *bevor* Du in die DB schreibst.

    Außerdem: warum benutzt Du nicht die Methode POST?
    Bei dieser Methode würde bei einem Reload der User explizit (durch den UA) gefragt, ob die Daten _nochmals_ gesendet werden sollen.
    Weiters hast Du keine solchen Beschränkungen hinsichtlich der maximal zu
    übertragenden Daten, weil diese nicht als Bestandteil der URI, sondern im HTTP-Header gesendet werden.

    Habe mir überlegt, das schreiben in die DB in ein anderes File auszulagern und dann per redirect auf die erste Seite zurück umzuleiten.

    Warum?

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    1. Hi!

      erstmal frohes neues Jahr! Alles gute euch allen.

      Dir und allen anderen wünsche ich das auch!

      Jetzt habe ich das Problem, dass wenn ich einmal das Formular ausgefüllt habe werden die Daten nochmals in die Datenbank geschrieben, wenn man auf aktualisieren klickt, da die Daten noch in der URL sind.

      Prüfe, ob die Daten bereits in der DB vorhanden sind *bevor* Du in die DB schreibst.

      Das wäre eine Möglichkeit... aber es gibt bestimmt eine einfachere und schönere.

      Außerdem: warum benutzt Du nicht die Methode POST?
      Bei dieser Methode würde bei einem Reload der User explizit (durch den UA) gefragt, ob die Daten _nochmals_ gesendet werden sollen.

      Ich weiss nicht wie das bei deinen Usern ist. Aber meine versehen nicht einmal was die da gefragt werden...

      Weiters hast Du keine solchen Beschränkungen hinsichtlich der maximal zu
      übertragenden Daten, weil diese nicht als Bestandteil der URI, sondern im HTTP-Header gesendet werden.

      Habe mir überlegt, das schreiben in die DB in ein anderes File auszulagern und dann per redirect auf die erste Seite zurück umzuleiten.

      Warum?

      Weil ich dadurch die Daten (egal ob GET oder POST) los werde und dann so oft aktualisieren kann wie ich will. Zudem habe ich dann (bei Verwendung von GET) eine saubere URL habe. Es könnte ja sein, dass jemand die URL kopiert und an eine Freund sendet, der dann gleich nochmals die Daten eintragen würde.

      off:PP

      1. Hi!

        Jetzt habe ich das Problem, dass wenn ich einmal das Formular ausgefüllt habe werden die Daten nochmals in die Datenbank geschrieben, wenn man auf aktualisieren klickt, da die Daten noch in der URL sind.

        Prüfe, ob die Daten bereits in der DB vorhanden sind *bevor* Du in die DB schreibst.

        Das wäre eine Möglichkeit...

        Nein, das *mußt* Du tun!

        aber es gibt bestimmt eine einfachere und schönere.

        Leider nein, wie sollte diese denn aussehen?

        Außerdem: warum benutzt Du nicht die Methode POST?
        Bei dieser Methode würde bei einem Reload der User explizit (durch den UA) gefragt, ob die Daten _nochmals_ gesendet werden sollen.

        Ich weiss nicht wie das bei deinen Usern ist.

        Ich auch nicht.

        Aber meine versehen nicht einmal was die da gefragt werden...

        Das ist das gemeine an Usern: Du kennst sie und deren Kenntnisse niemals komplett!

        Weiters hast Du keine solchen Beschränkungen hinsichtlich der maximal zu
        übertragenden Daten, weil diese nicht als Bestandteil der URI, sondern im HTTP-Header gesendet werden.

        Habe mir überlegt, das schreiben in die DB in ein anderes File auszulagern und dann per redirect auf die erste Seite zurück umzuleiten.

        Warum?

        Weil ich dadurch die Daten (egal ob GET oder POST) los werde und dann so oft aktualisieren kann wie ich will. Zudem habe ich dann (bei Verwendung von GET) eine saubere URL habe. Es könnte ja sein, dass jemand die URL kopiert und an eine Freund sendet, der dann gleich nochmals die Daten eintragen würde.

        Ich bin nicht sicher, ob ich Dich komplett verstanden habe, aber: bei der Verwendung von POST bist Du des letzten Problems ledig.

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)