Кажется, что тема письма по электронной почте нарушает получение контактной формы

Я написал контактную форму, и когда я набираю «имя, адрес электронной почты и сообщение», я получаю письмо. Однако, когда я набираю тему, я перехожу на страницу «Спасибо», но мне кажется, что я никогда не получаю письмо.

Я пытался изменить различные переменные в скрипте PHP, но это не работает. Я не могу понять, что мешает отправить письмо. Смотрите код ниже.

<?php

error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");

if(isset($_POST['submit'])){
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$formcontent = "From: $first_name $last_name \n \n Message: $message";
$to = '[email protected]';
$mailheader = "From: $email \r\n";
mail($to, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You! Your kind message has been recieved!";
}
?>
   <form method="POST" action="mail.php">
<div class="form-inline">
<label for="Firstname">Name</label>
<input type="text" class="form-control"id="Firstname" name="first_name" placeholder="First Name">
<input type="text" class="form-control"id="Lastname" name="last_name" placeholder="Last Name">
</div>
<div class="form-group">
<label for="Email">E-mail</label>
<input type="email" class="form-control"id="Email" name="email" placeholder="Email Address">
</div>
<div class="form-group">
<label for="Subject">Subject</label>
<input type="text" class="form-control"id="Subject" name="subject" placeholder="Let me know what it's about">
</div>
<div class="form-group">
<label for="Message">Message
</label>
<textarea  class="form-control"id="Message" name="message" rows="6" placeholder="Send me something awesome!"></textarea>
</div>
<button type="submit" name="submit" class="btn btn-default">Submit
</button>
</form>

0

Решение

Я не вижу ничего плохого в коде, который вы разместили, который бы помешал отправке строки темы в php. Другими словами, на основе ПРОСТО кода, который вы разместили, php должен иметь доступ

$_POST['subject'];

Но на всякий случай попробуйте изменить кнопку отправки на вход, например, так

`<input type="submit" name="submit" value="Submit">`

Во-вторых, в будущем может быть полезно иметь строку темы, даже если человек, заполнивший форму, не предоставил ее. (Это действительно может помочь вам разобраться с вашими письмами в будущем). Я бы использовал оператор стенографического присваивания PHP. Это выглядит так

$subject = isset($_POST['subject']) ? $_POST['subject'] : "Default Subject Line";

Это то же самое, что делать это

if(isset($_POST['subject'])){
$subject = $_POST['subject'];
} else {
$subject = 'Default Subject Line';
}
0

Другие решения

Так что это сработало !!!! Я думаю, что через некоторое время игры вокруг писем, наконец, пришли. Это может быть одна из двух вещей: обновить кеш на сайте и изменить кнопку отправки на вход. В целом отправка электронной почты все еще очень медленная, но это может быть связано с сервером. Я проверю 100 писем, чтобы убедиться.

0

По вопросам рекламы [email protected]