Как показать / скрыть элементы с помощью PHP и как отправить пользователя на другую страницу

Я в середине сортировки PHP для моей контактной формы. Я пытаюсь сделать сообщение об ошибке, если форма не заполнена. У меня есть div в моем html с ошибкой, которую я хочу показать.

Я знаю, что я могу использовать «эхо» для отображения сообщения, но я хочу, чтобы оно было расположено именно там, где я его хочу. Я видел способ сделать это, но он включает в себя весь PHP-код в html-файле … и затем переименование файла .php. Я хочу сохранить основную часть кода php отдельно от html.

Вот мой код:

HTML:

<div class="error"> <p> Please fill out all fields. </p> </div> <form id="contactForm" action="contact.php" method="post"> <div> <input type="text" name="name" id="name" placeholder="Your Name" maxlength="65" tabindex="1"> <label for="name">Name</label> </div> <div> <input type="email" name="_replyto" id="email" placeholder="Your Email" maxlength="30" tabindex="2"> <label for="email">Email</label> </div> <div> <textarea name="message" id="message" rows="10" placeholder="Your Message..." maxlength="1000" tabindex="3"></textarea> <label for="message">Your Message</label> </div> <div> <input type="submit" name="submit" value="Send" tabindex="4"> </div> </form> 

PHP:

 // Check for form submission: if ($_SERVER['REQUEST_METHOD'] == 'POST') { /* The function takes one argument: a string. * The function returns a clean version of the string. * The clean version may be either an empty string or * just the removal of all newline characters. */ function spam_scrubber($value) { // List of very bad values: $very_bad = array('to:', 'cc:', 'bcc:', 'content-type:', 'mime-version:', 'multipart-mixed:', 'content-transfer-encoding:'); // If any of the very bad strings are in // the submitted value, return an empty string: foreach ($very_bad as $v) { if (stripos($value, $v) !== false) return ''; } // Replace any newline characters with spaces: $value = str_replace(array( "\r", "\n", "%0a", "%0d"), ' ', $value); // Return the value: return trim($value); } // End of spam_scrubber() function. // Clean the form data: $scrubbed = array_map('spam_scrubber', $_POST); // Minimal form validation: if (!empty($scrubbed['name']) && !empty($scrubbed['email']) && !empty($scrubbed['comments']) ) { // Create the body: $body = "Name: {$scrubbed['name']}\n\nComments: {$scrubbed['comments']}"; // Send the email: mail('example@email.com', 'Contact Form Submission', $body, "From: {$scrubbed['email']}"); // Print a message: echo '<p><em>Thank you.</em></p>'; // Clear $scrubbed (so that the form's not sticky): $scrubbed = array(); } else { echo '<p style="font-weight: bold; color: #C00">Please fill out the form completely.</p>'; } } // End of main isset() IF 

Мой php находится в файле с именем contact.php, а мой html находится в файле с именем contact.html.

Я хочу показать div с ошибкой класса, если форма не завершена.

Я попробовал другой способ, добавив этот код в html, заменив текущий div:

 <span class="error">* <?php include 'contact.php'; echo $Err;?></span> 

и это в файл php:

 $Err = "Please fill out all fields"; 

Это все еще не сработало. Это как если бы он не мог прочитать код в файле php из html-файла, хотя я включил его?

Другое дело, как я могу отправить пользователя на другую страницу html после отправки формы? Это делается путем замены

 // Print a message: echo '<p><em>Thank you.</em></p>'; 

с

 header('Location: nextpage.html'); 

Спасибо за любую помощь заранее.