私は連絡フォームを使用して電子メールを送信すると、そのメールは空白です(件名もメッセージも何もありません)。電子メールは私のGmailに完全に送信されますが、 。php電子メールを送信すると空白になる
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');
}
);
});
PHP
<?php
$name = isset($_POST['name']) ? $_POST['name'] : '';
$email = isset($_POST['_replyto']) ? $_POST['_replyto'] : '';
$subject = isset($_POST['_subject']) ? $_POST['_subject'] : '';
$comments = isset($_POST['comments']) ? $_POST['comments'] : '';
$to = '[email protected]';
$subject = $subject;
$comments = "From: " . $name . ", " . $email . "\r\n \r\n" . "comments: " . $comments;
if (mail($to, $email, $subject, $comments)) {
echo "Thanks for contacting us, we will get back to you soon!";
} else {
echo "Sorry, there was an error sending the email. Please ensure you have filled out the form correctly and try again!";
}
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>
</div>
を:最初に、あなたのブラウザの開発コンソールを開き、Ajaxのポストが実際に期待値を送るかどうかを確認します。もしそうなら、次に '$ _POST'のスーパーグローバルをサーバ側のログファイルにダンプし、それらの値を受け取るかどうかをチェックします。 – arkascha
あなたのSESSION ...が始まっていることを確認しますか? '$ name = isset($ _ POST ['name'])をチェックする方法は? $ _POST ['name']: ''; $ email = isset($ _ POST ['replyto'])? $ _POST ['_ replyto']: ''; $ subject = isset($ _ POST ['_ subject'])? $ _POST ['_ subject']: ''; $ comments = isset($ _ POST ['comments'])? $ _POST ['comments']: ''; 'は実際にはそれを静かに"失敗 "させます。 –
フォームが動作します...私は電子メールを受け取ります...件名がないとか...何か....ボタンの送信がクリックされたときに電子メールを送信するようにトリガーすることを明確にしています... – digitalhive