Ошибка PHP во всех полях обязательна - но все поля вставлены
Я делаю форму регистрации (signup.html) с помощью обработчика php (signup-form-handler.php). Но похоже, что я делаю что-то не так.
Это мой код:
$errors = '';
$myemail = 'example@domain.com';//<-----Put Your email address here.
if(empty($_POST['FirstName']) ||
empty($_POST['LastName']) ||
empty($_POST['City']) ||
empty($_POST['Country']))
{
$errors .= "\n Error: all fields are required";
}
$FirstName = $_POST['FirstName'];
$LastName = $_POST['LastName'];
$City = $_POST['City'];
$Country = $_POST['Country'];
$Int1 = $_POST['Int1']; // <---- Here's what seems to be the issue
$Int2 = $_POST['Int2']; // <---- Here's what seems to be the issue
if( empty($errors))
{
$to = $myemail;
$email_subject = "Udfyldelse af test på Gamification: $FirstName";
$email_body = "Du har fået en ny besvarelse. ".
"Her er besvarelserne:\n Fornavn: $FirstName \n Efternavn: $LastName \n By: $City \n Land $Country \n".
"De fire personlige interesser: $Int1 og $Int2";
$headers = "From: $myemail\n";
mail($to,$email_subject,$email_body,$headers);
//redirect to the 'thank you' page
header('Location: contact-form-thank-you.html');
}
Вот соответствующий HTML-код:
<form id="contact_form" name="contact_form" action="signup-form-handler.php">
<!-- Personlige oplysninger -->
<div class="next">
<h3>Personlige oplysninger<a class="info" href="#" title="Testing"><img style="height: 15px; width: 15px; margin-left: 5px;" alt="Time" src="img/signup_form/info_simple.png"></a></h3>
<b>Mit navn er</b>
<input class="user_field" placeholder="fornavn" id="FirstName" name="FirstName" type="text" maxlength="60" />
<input class="user_field" placeholder="efternavn" id="LastName" name="LastName" type="text" maxlength="60" />
</br>
<b>og bor i</b>
<input class="user_field" placeholder="indsæt by" id="City" name="City" type="text" maxlength="60" />
<b>,</b>
<input class="user_field" placeholder="indsæt land" id="Country" name="Country" type="text" maxlength="60" />
</br>
</br>
<b>Beskriv dig selv med 4 interesser</b>
</br>
<input id="Int1" name="Int1" class="tag_btn user_field" style="color: #FFFFFF;" placeholder="Interesser 1" />
<input id="Int2" name="Int2" class="tag_btn user_field" style="color: #FFFFFF;" placeholder="Interesser 2" />
<input class="tag_btn user_field" style="color: #FFFFFF;" placeholder="Interesser 3" />
<input class="tag_btn user_field" style="color: #FFFFFF;" placeholder="Interesser 4" />
</div>
Как вы можете видеть из моего примера кода, я пытаюсь получить информацию из моей HTML-формы. Я прокомментировал код, где возникает проблема. Если я получаю данные от Int1 и Int2, я получаю ответ, что все обязательные поля должны быть заполнены, но я не хочу требовать Int1 и Int2. Также я не добавлял Int1 и Int2 в начале, где я проверяю, являются ли другие переменные пустыми. Если я удаляю Int1 и Int2, все работает нормально.
Когда я отправляю форму после вставки всех входных данных, я получаю следующее сообщение: "Ошибка: все поля обязательны для заполнения"
Что я делаю неправильно?
Надеюсь, я дал достаточно информации, чтобы найти проблему, спасибо!
3 ответа
Метод по умолчанию - GET. Установите метод формы POST:
<form id="contact_form" name="contact_form" action="signup-form-handler.php" method="POST">
Таким образом, вы не передаете значения в сценарий. Если вы хотите использовать метод GET, переключите все экземпляры $_POST на $_GET, и вы можете оставить форму как есть.
Хорошо, для начала, тег"для жирного шрифта запрещен, используйте" strong> "
если вы добавите это на свою php-страницу, это сработает, поиграйте с формой, хотя я не мог понять датский, чтобы знать, что к чему. это одностраничное решение, нет необходимости в HTML-файле
<?php
$form = '<form id="contact_form" name="contact_form" action="'.$_SERVER['PHP_SELF'].'" method="post" >
<!-- Personlige oplysninger -->
<h3>Personlige oplysninger<a class="info" href="#" title="Testing"><img style="height: 15px; width: 15px; margin-left: 5px;" alt="Time" src="img/signup_form/info_simple.png"></a></h3>
<strong>Mit navn er</strong>
<input class="user_field" placeholder="fornavn" id="FirstName" name="FirstName" type="text" maxlength="60">
<input class="user_field" placeholder="efternavn" id="LastName" name="LastName" type="text" maxlength="60" >
<input type="text" class="user_field" placeholder="fornavn" id="FirstName" name="FirstName" >
<strong>og bor i</strong>
<input class="user_field" placeholder="indsæt by" id="City" name="City" type="text" maxlength="60" >
<strong>,</strong>
<input class="user_field" placeholder="indsæt land" id="Country" name="Country" type="text" maxlength="60" >
<strong>Beskriv dig selv med 4 interesser</strong>
<input type="text" id="Int1" name="Int1" class="tag_btn user_field" style="color: #FFFFFF;" placeholder="Interesser 1" >
<input type="text" id="Int2" name="Int2" class="tag_btn user_field" style="color: #FFFFFF;" placeholder="Interesser 2" >
<input type="text" class="tag_btn user_field" style="color: #FFFFFF;" placeholder="Interesser 3" >
<input type="text" class="tag_btn user_field" style="color: #FFFFFF;" placeholder="Interesser 4" >
<input type="submit" name="submit" value="Enter">
</form>';
if (isset ($_POST['submit'])){
$errors = '';
$myemail = 'example@domain.com';//<-----Put Your email address here.
if(empty($_POST['FirstName']) ||
empty($_POST['LastName']) ||
empty($_POST['City']) ||
empty($_POST['Country']))
{
$errors .= "\n Error: all fields are required";
$display = $errors.$form;
}else{
$FirstName = $_POST['FirstName'];
$LastName = $_POST['LastName'];
$City = $_POST['City'];
$Country = $_POST['Country'];
$Int1 = $_POST['Int1']; // <---- Here's what seems to be the issue
$Int2 = $_POST['Int2']; // <---- Here's what seems to be the issue
$to = $myemail;
$email_subject = "Udfyldelse af test på Gamification: $FirstName";
$email_body = "Du har fået en ny besvarelse. ".
"Her er besvarelserne:\n Fornavn: $FirstName \n Efternavn: $LastName \n By: $City \n Land $Country \n".
"De fire personlige interesser: $Int1 og $Int2";
$headers = "From: $myemail\n";
mail($to,$email_subject,$email_body,$headers);
//redirect to the 'thank you' page
header('Location: contact-form-thank-you.html');
}
}else{
$display = $errors.$form;
}
echo $display;
?>