Sebastian Becker: Selbstaufrufendes Mailformular

Hallo,

wie kann ich das erneute Abschicken der Mail beim Reload der Bestätigungsseite eines selbstaufrufenden Mailformulars am besten verhindern?

Danke für alle Hinweise, Grüße,

Sebastian

  1. Hallo Sebastian,

    wie kann ich das erneute Abschicken der Mail beim Reload der Bestätigungsseite eines selbstaufrufenden Mailformulars am besten verhindern?

    Leite per header("Location:andereseite.php");[1] woanders hin, dann kommt der User nicht mehr auf die Seiter zurück.

    Grüße aus Nürnberg
    Tobias

    [1] http://www.php.net/manual/de/function.header.php#AEN28509

    ps: du weißt, dass es hier ein </archiv/> gibt?

    1. Hallo, Tobias,

      Leite per header("Location:andereseite.php");[1] woanders hin, dann kommt der User nicht mehr auf die Seiter zurück.

      das wollte ich ja gerade vermeiden - bleiben denn dabei die Post-Variablen erhalten?

      ps: du weißt, dass es hier ein </archiv/> gibt?

      ... aber wonach suchen?

      Grüße aus Berlin

      Sebastian

      1. Hallo Sebastian,

        Leite per header("Location:andereseite.php");[1] woanders hin, dann kommt der User nicht mehr auf die Seiter zurück.

        das wollte ich ja gerade vermeiden - bleiben denn dabei die Post-Variablen erhalten?

        welche anderen Variablen sollen den erhalten bleiben? aber die gehen dann natürlich verloren... vielleicht erläuterst du mal genauer, was du machen willst, dann weiß evtl. jemand noch was.

        ps: du weißt, dass es hier ein </archiv/> gibt?
        ... aber wonach suchen?

        php reload verhindern versenden aktualisieren - irgendwie sowas (einfach die Worte die man für das Posting verwenden würde verwenden)

        Grüße aus Nürnberg
        Tobias

        1. Hallo Sebastian,

          welche anderen Variablen sollen den erhalten bleiben? aber die gehen dann natürlich verloren... vielleicht erläuterst du mal genauer, was du machen willst, dann weiß evtl. jemand noch was.

          die eingegebenen Werte sollen auf der Bestätigungsseite nochmal ausgegeben werden - und dazu sollten die POST-Variablen noch vorhanden sein (per GET weiterschleifen ist unschön und Sessions sind zu aufwendig) ...

          Grüße, Sebastian

          1. Hi

            die eingegebenen Werte sollen auf der Bestätigungsseite nochmal ausgegeben werden - und dazu sollten die POST-Variablen noch vorhanden sein (per GET weiterschleifen ist unschön und Sessions sind zu aufwendig) ...

            Dann gib doch jeder Mail die erstellt wird eine eindeutige Nummer die du dann in einer Textdatei speicherst, wenn die Mail versandt wird. Beim Absenden prüfst du dann ob die Mail schon versandt wurde(d.H die Nummer steht schon in der Datei), und schickst sie nur ab wenn nicht vorhanden.

            mfg Andres Freund

            1. Hallo, Andres,

              Dann gib doch jeder Mail die erstellt wird eine eindeutige Nummer die du dann in einer Textdatei speicherst, wenn die Mail versandt wird. Beim Absenden prüfst du dann ob die Mail schon versandt wurde(d.H die Nummer steht schon in der Datei), und schickst sie nur ab wenn nicht vorhanden.

              das birgt wieder neue Fallstricke - ich suche eigentlich eine ganz einfache Lösung ...

              Danke und Grüße, Sebastian

              1. hio Sebastion,

                das birgt wieder neue Fallstricke - ich suche eigentlich eine ganz einfache Lösung ...

                hm, ob es die für dein Problem gibt? ;)

                Ich verstehe nicht, und ich denke dies ist auch das Problem der anderen, was du eigentlich machen willst. Warum brauchst du noch irgendwelche POST-Daten nach der mail?.
                Was du machen könntest wäre das in einer Session zu speichern. Du könntest z.b. die Session vor der Seite des mailversand starten und dort speichern, das noch keine mail verschickt wurde, nach dem versenden speicherst du nun mail gesendet, und lässt nach refresh ein erneutes verschicken nicht mehr zu.

                gl & hf

                Thorsten

    2. hio,

      Leite per header("Location:andereseite.php");[1]

      ^

      muss glaube ich header("Location: andereseite.php")                              heissen, mit Leerzeichen zwischen : und der URL.

      gl & hf

      Thorsten

      1. Hallo Thorsten,

        Leite per header("Location:andereseite.php");[1]
                                      ^

        das '^' hängt bei mir unter dem 'n' von 'andereseite' :-)

        muss glaube ich header("Location: andereseite.php") heissen, mit Leerzeichen zwischen : und der URL.

        mhh... auf [1] steht es zwar mit Leerzeichen (auch bei den anderen Headern), ich habe aber nichts gefunden, ob es zwingend ist (was wiederum nicht viel heißt :-)). Funktioniert hat es ohne das Leerzeichen jedenfalls...

        Grüße aus Nürnberg
        Tobias

        [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30