Kontaktformular selber programmieren

  • Hallo,

    ich habe ein funktionsfähiges Kontaktformular programmiert. ( ich will es selber programmieren, da ich mich fürs programmieren interessiere )

    Problem ist nun, dass wenn ich auf Abschicken klicke, und dann die Seite aktualisiere, die $_POST Variablen noch einmal abgeschickt werden.. also im Cache oder so sind.

    Ganz simpler Aufbau:


    Wie kann man sowas unterbinden?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich hoffe, ich verstehe Deine Frage richtig.
    Das ist ein normales Verhalten, IMHO. Wenn ich eine FORM absende und dann die "Ergebnisseite" aktualisiere, werden die Daten nochmals per POST gesendet.

    Gibt einige Möglichkeiten, dies zu verhindern:

    http://blog.parastudios.de/?p=195
    http://www.selfphp.de/kochbuch/kochbuch.php?code=21

    Oder Du leitest nach Verarbeitung der Daten auf die Formularseite per header("location...), das läuft AFAIK per GET, ergo keine POST-Daten mehr vorhanden.


  • hm... das Problem ist dass ich nicht unbedingt mit Sessions arbeiten will. Ich kenne das Problem ja selber und ich dachte dass WP da eine nützliche Funktion bietet.

    Ich habe auch schon in andere Kontaktformular Plugins geblickt und die kriegen dass ja auch ohne Sessions hin. Jedoch blicke ich da noch nicht ganz durch :D


  • Wie kann man sowas unterbinden?

    [size=10]Wie erkenne ich den Klick auf einen Submit-Button[/SIZE]

    http://www.php-faq.de/q-formular-absenden.html

    Code
    <input type="submit" name="submit" value="Abschicken"/>if ([URL="http://www.php3.de/isset"]isset[/URL]($_POST['submit'])) { ... }

    und soetwas

    PHP
    if($_POST['submitted'] == true){

    macht man nicht

    cu

    ralf

    Mit offenen Augen träumen

  • naja mit isset wird es aufs gleiche hinaus kommen oder? Da die Post Variablen beim aktualisieren der Seite immer wieder geschickt werden^^

  • Die richtige Lösung wäre meines Erachtens auch, nach dem Versenden der Nachricht die Bestätigungsseite nicht direkt anzuzeigen, sondern darauf umzuleiten. Das ist dann ein normaler GET-Aufruf, den der Nutzer so oft er möchte refreshen kann. Die angezeigte Nachricht machst Du einfach generisch, so dass da auch keine Variablen eingefügt werden müssen.

Jetzt mitmachen!

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