У меня есть веб-сайт с контактной формой, и форма отправляет данные в мой файл .php с помощью метода POST. Я попробовал очень простой скрипт из учебника, и он отлично работает. Так что мой хост не кажется проблемой. Но как только я изменил базовый скрипт и вставил свои собственные переменные, он перестал работать. Он не показывает никаких синтаксических ошибок, и все свойства «имя» из файла .html верны.
<?php
if (isset($_POST['sendbtn'])) {
$to = "[email protected]";
$name = $_POST['Name'];
$unternehmen = $_POST['Unternehmen'];
$strasse = $_POST['Strasse'];
$hausnummer = $_POST['Hausnummer'];
$postleitzahl = $_POST['Postleitzahl'];
$ort = $_POST['Ort'];
$email = $_POST['Email'];
$telefonnummer = $_POST['Telefonnummer'];
$nachricht = $_POST['Nachricht'];
$einverstaendniserklaerung = $_POST['Einverstaendiserklaerung'];
$subject = "Das Kontaktformular wurde ausgefüllt";
$email_body = "Neue Nachricht:\n";
$email_body .= "Name: $name\n";
$email_body .= "Unternehmen: $unternehmen\n";
$email_body .= "Strasse: $strasse\n";
$email_body .= "Hausnummer: $hausnummer\n";
$email_body .= "Postleitzahl: $postleitzahl\n";
$email_body .= "Ort: $ort\n";
$email_body .= "E-Mail: $email\n";
$email_body .= "Telefonnummer: $telefonnummer\n";
$email_body .= "Nachricht: $nachricht\n";
$email_body .= "Einverstaendniserklaerung:
$einverstaendniserklaerung\n";
mail($to, $subject, $email_body);
header("Location: kontakt.html?mailsend");
}
?>
Вот фрагмент рабочего руководства:
<?php
if (isset($_POST['sendbtn1'])) {
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
$userName = $_POST['userName'];
$mailTo = "[email protected]";
$headers = "From: ".$userName;
$txt = "Cheese: ".$firstName." ".$lastName."\n\n Ham";
mail($mailTo, $headers, $txt);
header("Location: index.html?mailsend");
}
Удалите строку location(… и посмотрите, нет ли ошибки.
Можете ли вы выставить «правильно работающий тест», который, как вы сказали, был в порядке? Так что нам есть с чем сравнивать.
Хорошо, я добавил фрагмент учебника. и это просто пустая страница, без ошибок. удаление местоположения тоже не работает. Мне интересно, может ли свойство «имя» в html быть чувствительным к регистру, и поэтому оно не работает? я проверю
Почтовые заголовки (второй аргумент функции mail()) — это место, где вы размещаете такие вещи, как адрес отправителя и тема письма, явно указывая, какой должна быть каждая строка. Попробуйте заменить строку $subject = "Das Kontaktformular wurde ausgefüllt"; на $headers = "Subject: Das Kontaktformular wurde ausgefüllt\n"; $headers .= "From: [email protected]\n";, а затем изменить вызов почты на mail($to, $headers, $email_body);.
Спасибо всем, что нашли время. Я это очень ценю. Я нашел проблему. Это был первый оператор if, который проверял «sendbtn». Я использовал свойство «id» вместо свойства «name» в своем html.






он, вероятно, показывает вам 500 в апаче (или другом журнале), возможно, неопределенный член в
$_POST.