2017-09-22 5 views
0

私のコードはPHPで送信してメールで送ってもらえますか?見てみてください:お問い合わせフォーム - JQueryとPHP - メールが正しく送信されない

HTML:

<form class="contact_form" method="POST" action="mail.php"> 
    <div class="input"> 
     <label class="pl">Imię</label> 
     <input id="name" type="text" name="name"> 
    </div> 
    <div class="input"> 
     <label>E-mail</label> 
     <input id="email" type="text" name="email"> 
    </div> 
    <div class="input"> 
     <label class="pl">Temat</label> 
     <input id="subject" type="text" name="subject"> 
    </div> 
    <div class="message"> 
     <label class="pl">Twoja wiadomość</label> 
     <textarea id="message" name="message"></textarea> 
    </div> 
    <div class="input"> 
     <input id="submit_pl" class="button pl" type="submit" value="Wyślij"> 
     <input id="reset_pl" class="button pl" type="reset" value="Resetuj"> 
    </div> 
</form> 

JS/jQueryの:

// Form Validation ------------------------------------ // 
    // Form is not valid on page load // 
    var isFormValid = false; 

    // input variables // 
    var name = $('#name'); 
    var email = $('#email'); 
    var subject = $('#subject'); 
    var message = $('#message'); 
    var subtmitBtnPl = $('#submit_pl'); 
    var subtmitBtnEn = $('#submit_eng'); 
    var resetBtnPl = $('#reset_pl'); 
    var resetBtnEn = $('#reset_eng'); 

    var form = $('.contact_form'); 

    var isNameValid = function() { 
    var nameVal = name.val(); 
    return nameVal.length > 0 && nameVal.length <= 100; 
    }; 

    var isEmailValid = function() { 
    var emailVal = email.val(); 
    return emailVal.indexOf('@') > -1 && emailVal.length <= 100; 
    }; 

    var isSubjectValid = function() { 
    var subjectVal = subject.val(); 
    return subjectVal.length > 0 && subjectVal.length <= 100; 
    }; 

    var isMessageValid = function() { 
    var messageVal = message.val(); 
    return messageVal.length > 0 && messageVal.length <= 500; 
    }; 

    function formValidation() { 
    var isFormValid = isNameValid() && isEmailValid() && isSubjectValid() && isMessageValid(); 

    if (isFormValid === false) { 
     alert('error'); 
    } else { 
     alert('succes'); 
     form[0].reset(); 
    } 
    }; 

    form.submit(function(event) { 
    event.preventDefault(); 
    formValidation(); 
    }); 

PHP:

<?php 
if (isset($_POST['name']) && isset($_POST['email']) && isset($_POST['subject'])) { 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $subject = $_POST['subject']; 
    $body = $_POST['message']; 
    $to = '[email protected]'; 

    //headers 
    $headers = "From: ".$name." <".$email.">\r\n"; 
    $headers .= "Reply-To: ".$email."\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset-utf-8"; 

    //send 
    $send = mail($to, $subject, $body, $headers); 
    if ($send) { 
     echo '<br>'; 
     echo 'Thanks for contacting me. I will be with You shorty.'; 
    } else { 
     echo 'error'; 
    } 
} 
?> 

私はPHPと非常に未経験です。私の連絡フォームが動作していない/電子メールを送信している理由を教えてください。

JQuery検証は正常に動作します。 このプロジェクトはローカルホストではなく、私のドライブ上にあります(PHP mail()がうまく動作しますか?)。 もちろん、PHPファイルの名前は "mail.php"です。

+1

PHPコードを実行するにはPHPをインストールする必要があります。それがあなたのドライブ上にあるなら(そしてあなたは何らかのPHPサーバを設定していません)、PHPは動作しません。 – Luke

+0

それ以外に、私のコードは大丈夫ですか?基本的なhtml/JS/PHPプロジェクトでPHPサーバーを実行するにはどうすればよいですか? – svyatogor92

+0

@ルークは正しいです。あなたのコンピュータで(ローカルで)実行しようとしている場合は、xamppをインストールすることをお勧めします。 https://www.apachefriends.org/index.html –

答えて

-1

XAMPP、WAMPPなどのWebサーバーをインストールする

+0

ええ、私はそれを考え出し、xampp htdocsフォルダにファイルを入れました。私はlocalhostで実行することができます/それでも動作していません。なぜどんな懇願? – svyatogor92

+0

私はあなたがあなたのファイルをウェブホスティングにアップロードすると、あなたが電子メールを送ることができると信じています。私はこのメールを送信することがローカルではないと感じています。 – rafon

+0

あなたはxampp localhost /?を意味しますか?だから私はそれを生き生きと試す必要がある? – svyatogor92

関連する問題