Michi: POST-Variablen aus Serverspeicher kicken

Hallo,

wie bekommt man es ohne Weiterleitungen am Elegantesten hin, das man die gespeicherten POST-Variablen ausm Speicher haut, wenn "reload" geklickt wird bzw. gleich bei erfolgreicher Übergabe?

Irgendein Skript ruft über ein Formular ein anderes per POST auf. Dieses setzt in Abhängigkeit von den POST-Variablen best. Session-Variablen. Konkretes Beispiel: Login. Stimmen die Login-Daten, gehts "ab ins Portal", ansonsten zurück zur Eingabe.
Klickt man im Portal reload (warum auch immer), soll nicht immer das Fensterchen aufgehen: "Die Seite, die Sie ansehen wollen, enthält POST-Daten."

Das Überschreiben mit $_POST [ 'sowieso' ] = null hat nicht zum Erfolg geführt.

Gruß Michi

  1. hi Michi,

    ganz einfach: Mach in dem Script eine Umleitung auf Bestätigungsseite o.ä.

    Dann kann der "Poster" reload klicken wie er will, es wird nicht der POST wiederholt sondern nur die Bestätigungsseite neu geladen.

    --roro

    danke für die Butter, aber poste besser nicht mit der Firmen-eMail in privaten Foren ;-)

    1. danke für die Butter, aber poste besser nicht mit der Firmen-eMail in privaten Foren ;-)

      Butter ?
      http://www.weihenstephan.org/

      1. danke für die Butter, aber poste besser nicht mit der Firmen-eMail in privaten Foren ;-)

        Butter ?
        http://www.weihenstephan.org/

        Jaja, hab schon gesehen, dass meine "Weihenstephan-Butter" nichts mit zu tun hat. Verweckslung von mir, sorry.

        --roro

        1. Hallo Rolf,

          Jaja, hab schon gesehen, dass meine "Weihenstephan-Butter" nichts mit zu tun hat. Verweckslung von mir, sorry.

          mach dir nichts draus - ich war jahrelang davon überzeugt, Weihenstephan sei eine Brauerei!

          Ciao,
           Martin

          --
          Man sollte immer wissen was man sagt
           - aber auf keinen Fall alles sagen, was man weiß.
          1. habe d'ehre Der

            Hallo Rolf,

            Jaja, hab schon gesehen, dass meine "Weihenstephan-Butter" nichts mit zu tun hat. Verweckslung von mir, sorry.

            mach dir nichts draus - ich war jahrelang davon überzeugt, Weihenstephan sei eine Brauerei!

            Ist auch richtig, ob die Brauerei allerdings immer noch zur FH fuer Gartenbau und Agrarwirtschaft gehoert weiss ich nicht. Die Molkereisparte war frueher auch in Staatsbesitz und der FH angegliedert, wurde aber Ende der 90er Jahre im Rahmen von Privatisierungen des Tafelsilbers[1] an die Mueller-Gruppe verkauft und steht seitdem ein bisschen im Kreuzfeuer der Umweltaktivisten (Einsatz von durch Gen-Manipulation kontaminierten Erzeugnissen). Mueller-Milch hat in dieser Richtung ja nicht gerade den besten Ruf.

            man liest sich
            Wilhelm

            [1] Weihenstephan war im suedlichen Teil Bayerns irgendwie ein "must have", um mal den neuen BVB-Slogan aufzugreifen.

  2. echo $begrüßung;

    wie bekommt man es ohne Weiterleitungen am Elegantesten hin, das man die gespeicherten POST-Variablen ausm Speicher haut, wenn "reload" geklickt wird bzw. gleich bei erfolgreicher Übergabe?

    Warum magst du Weiterleitungen in dem Fall nicht?

    Der Browser hat keine Kontrolle darüber, was mit den POST-Daten geschieht. Es gibt keinen Rückmeldemechanismus aufgrund dessen er die Daten vergessen kann. Bei manchen Anwendungsfällen mag es sinnvoll sein, die Daten noch einmal zu senden, bei manchen nicht. Woran soll der Browser erkennen, welcher Fall gerade vorliegt?

    Irgendein Skript ruft über ein Formular ein anderes per POST auf. Dieses setzt in Abhängigkeit von den POST-Variablen best. Session-Variablen. Konkretes Beispiel: Login. Stimmen die Login-Daten, gehts "ab ins Portal", ansonsten zurück zur Eingabe.

    Wie regelst du "ab ins Portal"?

    Klickt man im Portal reload (warum auch immer), soll nicht immer das Fensterchen aufgehen: "Die Seite, die Sie ansehen wollen, enthält POST-Daten."

    Ein Location-Header als Antwort auf einen erfolgreichen POST-Daten-Versand ist einfach zu realisieren und hilft wirksam gegen das Erscheinen des Fensterchens.

    Das Überschreiben mit $_POST [ 'sowieso' ] = null hat nicht zum Erfolg geführt.

    Nein, das passiert ja auch nur auf dem Server. Der Client erfährt davon nichts.

    echo "$verabschiedung $name";

  3. Moin!

    wie bekommt man es ohne Weiterleitungen am Elegantesten hin, das man die gespeicherten POST-Variablen ausm Speicher haut, wenn "reload" geklickt wird bzw. gleich bei erfolgreicher Übergabe?

    Ohne Weiterleitung gar nicht.

    Überleg mal selbst: Wenn du ein GET-Formular hast, stehen nach dem Abschicken des Formulars die Daten in der URL. Wenn du diese URL neu lädst - landen diese Daten auch erneut beim Skript.

    Bei GET ist das absolut normal, jeder versteht das, und der Browser fragt auch nicht mit einer Meldung nach, ob die GET-Daten erneut verschickt werden sollen.

    POST verhält sich, was das Datensenden angeht, absolut identisch. Nur manche Browser fragen halt nach (und verwirren den Benutzer), wenn man die vermeintliche "Formularergebnisseite" neu lädt.

    Den GET-Parameter wirst du nur los, indem du einen Redirect machst. Die POST-Daten wirst du nur auf die selbe Weise los.

    Alternativ kannst du in einer Session natürlich auch speichern, dass du die Daten eines speziellen Formulars bereits einmal erhalten hast, und ignorierst weitere Daten einfach. Das dürfte aber weitaus komplexer zu programmieren sein (insbesondere die diversen Umstände, die man erst einmal erforschen muß, bei denen solches Ignorieren dann zu unerwünschtem Skriptverhalten oder Benutzbarkeitsverweigerung führen könnte).

    - Sven Rautenberg

    --
    "Love your nation - respect the others."