2016-09-18 1 views
0

ich einfachen E-Mail-Skript, mit wenigen Formen und ich bin immer doppelte Eingaben ...wie zu verhindern Doppelte Formularübermittlungen

Also, was ist der einfachste Weg, um doppelte Beiträge zu verhindern?

Mein Code ..

<form action="main_contact.php" method="post" name="contact_form"> 
        <input type="text" name="contact_name" placeholder="Name"> 
        <input type="email" name="contact_email" placeholder="Email"> 
        <input type="text" name="contact_subject" placeholder="Subject"> 
        <textarea cols="30" name="contact_message" rows="10" placeholder="Your Message"></textarea> 
        <input type="submit" value="Send"> 
       </form> 

<?php 
        if(isset($_POST['contact_form'])){ 
        var_dump($_POST); 
        } 
       ?> 
+0

Haben Sie die Protokolle überprüft, um zu versuchen und Stück zusammen die Benutzer Fahrt? – Progrock

+0

Entschuldigung, verstehe ich nicht? –

+0

Was ich meinte war warum passiert dieses Verhalten? Wartet der Benutzer darauf, dass etwas passiert und er die Taste mehrmals drückt? Oder zeigen die Logs oder Analysen einen anderen Grund? Siehe auch: http://stackoverflow.com/questions/926816/how-to-prevent-form-from-submitting-multiple-times-from-client-side – Progrock

Antwort

-1

Wenn Sie Framework wie Laravel5 oder Symfony verwendet würden Sie es "out of the box".

Kurz gesagt: Registrieren Sie ein Sitzungstoken und entwerten Sie es nach der ersten Formularübergabe.

+0

Hey .. Seine einfache E-Mail-Skript so gibt es keine MySql .. –

+0

Sie brauchen nicht MySql, um eine Sitzung zu starten und ein Token zu registrieren. –

1

können Sie jQuery verwenden, um zu deaktivieren Absenden-Button, nachdem das Formular abgeschickt wurde:

$('form[name="contact_form"]').submit(function(){ 
    $(this).find('input[type="submit"]').prop('disabled', true); 
}); 
+0

Dies ist ein direkter Ansatz dazu. Stellen Sie außerdem sicher, dass Sie dem Benutzer nach einer Übermittlung eine Erfolgsmeldung anzeigen. Auch das Umleiten auf eine Erfolgsseite ist effektiv und kann dabei helfen, die Conversion nachzuverfolgen. :) –

0

Sie brauchen nur zu deaktivieren oder die Sicht nach Taste klicken Sie einfach auf einreichen versteckt zu machen. geben Faust ein id auf die Submit-Button

<input type="submit" value="Send" id="sub_id"> 

und dann versteckt machen oder in Javascript deaktivieren, sobald Sie das Formular abschicken

document.getElementById('sub_id').style.visibility='hidden'; 
Verwandte Themen