Отображение имени и номера телефона в теле с ответом отправителю

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

Как я могу указать имя и номер телефона отправителя в электронном письме, например, в поле для подписи, или как лучше всего показать эту информацию?

Вот код, который у меня есть:

<?php
if (isset($_POST["submit"])) {
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$to = '[email protected]';
$subject = 'A new message via contact form';

$headers = 'Reply-To:'. $email . "\r\n" .
'X-Mailer: PHP/' . phpversion();

// Check if name has been entered
if (!$_POST['name']) {
$errName = 'Your full name is required.';
}

// Check if email has been entered and is valid
if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$errEmail = 'Your email address is required.';
}

//Check if number has been entered
if (!$_POST['number']) {
$errNumber = 'Your phone number is required.';
}
//Check if message has been entered
if (!$_POST['message']) {
$errMessage = 'Please provide your message.';
}

// If there are no errors, send the email
if (!$errName && !$errEmail && !$errMessage && !$errNumber) {
if (mail($to, $subject, $message, $headers, "From: " . $name)) {
$result='<div class="alert alert-success">Thank you for your interest! You will be contacted within 24 hours.</div>';
} else {
$result='<div class="alert alert-danger">We apologize! An error has ocurred. Call us on +47 XX XXX XX</div>';
}
}
}
?>

-1

Решение

Добавьте $ name и $ number в сообщение $.
Подобно:

$message .= "\r\n$name\r\n$number";

Изменить: чтобы уточнить, этот ответ решает проблему с номером телефона и именем, не указанными в теле сообщения электронной почты. Если это не было настоящей проблемой, то, наверное, я неправильно понял вопрос.

Правка 2: как указал Фред -ii, есть проблема с заголовками. Включите «От:» в четвертый параметр вместо добавления его в качестве пятого. И От: также должен содержать адрес электронной почты.

1

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

Для отправки значений с помощью php необходимо установить сеанс.
В этом сеансе ваше значение будет отправлено с именем. Если вы объявите имена, которые должны быть сохранены, он запомнит это. После этого страница, которая получает информацию, может использовать это, получая POST или GET.

Add this line to the top of the page:
<?php session_start();
$_SESSION["name"] = $name;
$_SESSION["email"] = $email;
$_SESSION["number"] = $number;
$_SESSION["message"] = $message;
?>

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

 . $number

После $ name оператор if, который говорит, что если ошибок нет, отправьте

Редактировать: я предлагаю igorshmigor anwser, потому что телефонный номер попадает в POST, но не объявлен в почтовой службе POST

0

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