2016-04-15 8 views
0

フィールドの値がメールに含まれないのはなぜですか?空メールが届きます。空メールが届くのはなぜですか?

HTML

<div class="contact-form wow fadeIn" data-wow-duration="1000ms" data-wow-delay="600ms"> 
    <div class="row"> 
    <div class="col-sm-6"> 
     <form id="main-contact-form" name="contact-form" method="post" action="sendemail.php"> 
     <div class="row wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms"> 
      <div class="col-sm-6"> 
      <div class="form-group"> 
       <input type="text" id="name" name="name" class="form-control" placeholder="Name" required="required"> 
      </div> 
      </div> 
      <div class="col-sm-6"> 
      <div class="form-group"> 
       <input type="email" id="email" name="email" class="form-control" placeholder="Email Address" required="required"> 
      </div> 
      </div> 
     </div> 
     <div class="form-group"> 
      <input type="text" id="subject" name="subject" class="form-control" placeholder="Subject" required="required"> 
     </div> 
     <div class="form-group"> 
      <textarea name="message" id="message" class="form-control" rows="4" placeholder="Enter your message" required="required"></textarea> 
     </div> 
     <div class="form-group"> 
      <button type="submit" class="btn-submit">Send Now</button> 
     </div> 
     </form> 
    </div> 

はJavaScript

var form = $('#main-contact-form'); 
form.submit(function(event) { 
    event.preventDefault(); 
    var form_status = $('<div class="form_status"></div>'); 
    $.ajax({ 
    url: $(this).attr('action'), 
    beforeSend: function() { 
     form.prepend(form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn()); 
    } 
    }).done(function(data) { 
    form_status.html('<p class="text-success">Thank you for contact us. As early as possible we will contact you</p>').delay(6000).fadeOut(); 
    }); 
}); 

PHP

<?php 

$name  = @trim(stripslashes($_POST['name'])); 
$headers = 'From:'. @trim(stripslashes($_POST['email'])); 
$subject = @trim(stripslashes($_POST['subject'])); 
$temp_name = 'Client name='.$name."\n\n\n"; 
$temp_text = 'client query='[email protected](stripslashes($_POST['message'])); 
$message = $temp_name.$temp_text; 
$to   = '[email protected]'; 

if(@mail($to, $subject, $message, $headers)) 
{ 
    $result="Thanks for contacting us"; 
}else{ 
    $result="retry after some time"; 
} 

?> 
+6

なぜあなたは、あなたのPHPエラーをサイレンシングしていますか? '@'を削除すると、関連するエラーメッセージが表示されるはずです。 –

+0

また、私はフィールドの値なしで空のメールを取得するとエラーが表示されません –

答えて

1

あなたは、デフォルトのフォーム提出を防ぐためにJavaScriptを使用しています。これは、あなたがそれをキャプチャして、あなたのAjaxコードの中で送ることを選択しない限り、あなたのユーザからの入力の投稿を停止します。

$.ajax({ 
... 
data: $("#main-contact-form").serialize(), 
... 
}) 

は、ここで詳細を参照してください。jQuery - Getting form values for ajax POST

+0

これは動作していません –