Bootstrap PHP форма не отправляет что-то

Я пытаюсь завершить проект, чтобы помочь другу с его сайтом, и я не могу заставить работать форму контакта. Когда я нажимаю "отправить": кажется, что он отправил, но тогда ничего не попадает в почтовый ящик на адрес электронной почты. (Я даже не могу заставить работать Stackru... продолжайте получать сообщение "ваш пост содержит код, который неправильно отформатирован как код")

Ниже представлен сайт: pservices.comuf.com

Ниже приведен код PHP:

<?php
// check if fields passed are empty
if(empty($_POST['name'])        ||
   empty($_POST['phone'])       ||
   empty($_POST['email'])       ||
   empty($_POST['message']) ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
    echo "No arguments Provided!";
    return false;
   }

$name = $_POST['name'];
$phone = $_POST['phone'];
$email_address = $_POST['email'];
$message = $_POST['message'];

// create email body and send it    
$to = 'cgramsinjapan@hotmail.com'; // PUT YOUR EMAIL ADDRESS HERE
$email_subject = "P Services Contact Form:  $name"; // EDIT THE EMAIL SUBJECT LINE HERE
$email_body = "You have received a new message from your website's contact form.\n\n"."Here are the details:\n\nName: $name\n\nPhone: $phone\n\nEmail: $email_address\n\nMessage:\n$message";
$headers = "From: noreply@your-domain.com\n";
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers);
return true;            
?>

1 ответ

Решение

Насколько я вижу после перехода в раздел контактов на сайте, который вы разместили, ни один из элементов вашей формы не содержит атрибута имени.

Например:

<input type="text" class="form-control" id="name" required data-validation-required-message="Please enter your name.">

должно быть изменено на

<input type="text" name="name" class="form-control" id="name" required data-validation-required-message="Please enter your name.">
                   ^^^^^^^^^^^

при добавлении соответствующих атрибутов имени к другим входам формы.

Вы не можете полагаться на id атрибут один.

Также это

<form name="sentMessage" id="contactForm" novalidate>

отсутствует метод сообщения и действие:

измените это на

<form method="post" action="handler.php" name="sentMessage" id="contactForm" novalidate>

с помощью handler.php как пример имени файла обработчика почты PHP.

Вы также можете изменить эти две строки:

mail($to,$email_subject,$email_body,$headers);
return true;

чтобы:

if(mail($to,$email_subject,$email_body,$headers)){ 
echo "Mail sent successfully.";
} 
else{ echo "Error.";
}

Если это повторяет успех, то mail() был успешно отправлен.

Если это повторяет ошибку, то это проблема сервера. Проверьте ваши почтовые журналы.

Другие вопросы по тегам