Я получил этот бесплатный шаблон, но контактная форма не работает вообще. В нем говорится, что сообщение отправлено, но я не получаю никакого сообщения. Форма выглядит очень хорошо, поэтому я не хочу ее менять, но она не работает. Разработчик не предоставляет техническую помощь для бесплатных шаблонов. Пожалуйста, помогите мне и заблаговременно!
HTML
<form id="main-contact-form" name="contact-form" role="form" method="post" action="sendemail.php">
<div class="form_status" style="display: none;"><p class="text-success">Thank you for contacting us. We'll get back to you shortly.</p></div>
<div class="form-group">
<input type="text" name="name" class="form-control" placeholder="Name" required>
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" placeholder="Email" required>
</div>
<div class="form-group">
<input type="text" name="subject" class="form-control" placeholder="Subject" required>
</div>
<div class="form-group">
<textarea name="message" class="form-control" rows="8" placeholder="Message" required></textarea>
</div>
<button type="submit" class="btn btn-primary">Send Message</button>
</form>
PHP
<?php
$name = @trim(stripslashes($_POST['name']));
$from = @trim(stripslashes($_POST['email']));
$subject = @trim(stripslashes($_POST['subject']));
$message = @trim(stripslashes($_POST['message']));
$to = '[email protected]';//replace with your email
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();
mail($to, $subject, $message, $headers);
die;
JS
var form = $('#main-contact-form');
form.submit(function(event){
event.preventDefault();
var form_status = $('<div class="form_status"></div>');
$.ajax({
url: $(this).attr('action'),
url: '../sendemail.php',
//type : $(this).attr('method'),
//data : $(this).serialize(),
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 contacting us. We will get back to you shortly</p>').delay(3000).fadeOut();
});
});
Публикация в качестве вики-сообщества.
Ваши заголовки писем не работают.
Поэтому добавьте implode("\r\n", $headers)
в соответствии с инструкциями руководства:
Пример из руководства:
<?php
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: Sender Name <[email protected]>";
$headers[] = "Bcc: JJ Chong <[email protected]>";
$headers[] = "Reply-To: Recipient Name <[email protected]>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();
mail($to, $subject, $email, implode("\r\n", $headers));
?>
implode("\r\n", $headers)
там, решено. Согласно Fffffff невероятное руководство php.net/manual/en/function.mail.php