2016-12-20 3 views
1

Ich habe versucht, mein Kontaktformular mit XAMPP zu verwenden. Ich habe .ini-Dateien usw. zu Testzwecken korrekt zu GMAIL konfiguriert. Kannst du sehen, wo ich einen Fehler gemacht habe?Warum funktioniert mein Kontaktformular nicht? das loading.gif steckt fest und nichts passiert

Ich habe sogar versucht WAMP und noch nichts funktioniert.

änderte ich die xwamp Dateien wie dieser Typ vorgeschlagen: How to configure XAMPP to send mail from localhost?

HTML

<form method="post" action="contact-form.php" name="contactform" id="contactform"> 
    <fieldset> 
     <input name="name" type="text" id="name" placeholder="Name"/> 
     <input name="email" type="text" id="email" placeholder="Email"/> 
     <input name="subject" type="text" id="subject" placeholder="Subject"/> 
    </fieldset> 
    <fieldset> 
     <textarea name="comments" cols="40" rows="3" id="comments" placeholder="Message"></textarea> 
    </fieldset> 
    <input type="submit" class="submit" id="submit" value="Send Message" /> 
</form> 

JS

$('#contactform').submit(function(){ 
    var action = $(this).attr('action'); 
    $("#message").slideUp(250,function() { 
     $('#message').hide(); 
     $('#submit') 
      .after('<img src="img/assets/cbp-loading.gif" class="loader" />') 
      .attr('disabled','disabled'); 
     $.post(action, { 
      name: $('#name').val(), 
      email: $('#email').val(), 
      subject: $('#subject').val(), 
      comments: $('#comments').val(), 
     }, 
      function(data){ 
       document.getElementById('message').innerHTML = data; 
       $('#message').slideDown(250); 
       $('#contactform img.loader').fadeOut('slow',function(){$(this).remove()}); 
       $('#submit').removeAttr('disabled'); 
       if(data.match('success') != null) $('#contactform').slideUp(850, 'easeInOutExpo'); 
      } 
     ); 
    }); 
    return false; 

PHP

<?php 
if (isset($_POST["submit"])) { 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $subject = 'Message from Contact Demo '; 
    $message = $_POST['message']; 
    $from = 'Demo Contact Form'; 
    $to = '[email protected]'; 
    $body = "From: $name\n E-Mail: $email\n Message:\n $message"; 
    mail('[email protected]', $name, $email, $subject, $message); 
} 
?> 

Sendmail-Code (ich habe die E-Mail und Passwort offensichtlich entfernt)

[sendmail] 

smtp_server=smtp.gmail.com 
smtp_port=587 
error_logfile=error.log 
debug_logfile=debug.log 
auth_usernam[email protected] 
auth_password=MY EMAIL PASSWORD 
[email protected] 
+2

Wo ist Ihre 'mail()' Funktion? – aynber

+0

etwas muss ich verpasst haben, ich bin neu in PHP, wo soll ich das hinzufügen,: z – digitalhive

+0

Das ist die Funktion, die das eigentliche Senden, also muss es gehen, nachdem Sie Ihren Körper, Thema, etc. Weitere Informationen können gefunden werden [https://secure.php.net/manual/en/function.mail.php] (in der Dokumentation). – aynber

Antwort

0

Einer der am meisten unterschätzten Punkte ist zu keinem Start XAMPP als Administrator an. Außerdem fehle ich einige configuartions für SMTP- und co:

$smtp = Mail::factory('smtp', array(
 
     'host' => 'ssl://smtp.gmail.com', 
 
     'port' => '465', 
 
     'auth' => true, 
 
     'username' => 'EMAIL', 
 
     'password' => 'PASSWORD' 
 
    ));

Das ist notwendig, um an Ihrer E-Mail-Adresse zu dürfen. Wenn nicht jemand Ihre E-Mail-Adresse spammen könnte.

Mit freundlichen Grüßen liqSTAR

+0

wo soll ich das kopieren? thnaks – digitalhive

+0

Wie bereits von anderen Personen erwähnt, fehlt Ihnen php völlig. Javascript ist nur die Möglichkeit, die Informationen aus den Formularen zu analysieren und zu sammeln. PHP ist derjenige, der diese Informationen per E-Mail senden wird. Ich benutze "phpmailer". [Link] (http://www.tutscorner.com/php-tutorials-create-a-contact-form-using-html-and-php-with-a-gmail-address/) – liqSTAR

+0

der PHP funktioniert, ich Es fehlte eine heilende Klammer, jetzt startet und stoppt die lading.gif – digitalhive

0

Es gibt keine mail() Funktion im PHP-Code.

Ich würde empfehlen, zu Beginn mit dem einfachsten Testfall zu beginnen. Als einen ersten Test würde ich empfehlen, eine einfache PHP-Datei zu schreiben, die einfach die mail() Funktion verwendet, um eine E-Mail an Ihre eigene Adresse zu senden und das Ergebnis zurückgibt (achten Sie darauf, auch das PHP-Fehlerprotokoll zu überprüfen) - dies hilft zu bestätigen, dass PHP konfiguriert ist mit einem funktionierenden SMTP-Server.

Ich würde dann das Formular Vorlage ohne die Verwendung von JavaScript versuchen, um sicherzustellen, dass es in Ordnung ist. Wird die Aktion $.post in der Konsole angezeigt? Zeigt es irgendetwas als Antwort oder Statuscode?

+0

Ich habe meine mail() -Funktion hinzugefügt: Ich werde versuchen und sehen, was er Ergebnis ist, Ill überprüfen Sie die Konsole jetzt – digitalhive

+0

die Konsole sagt, lädt nicht PHP-Datei – digitalhive

+0

POST http: // localhost: 8080/php /contact-form.php 404 (nicht gefunden) – digitalhive

Verwandte Themen