如何输出关于以前在数组中收集的缺少表单字段的通知


How can I output notification about missing form fields previously collected in an array?

我已经检查了$_POST数据中是否缺少必需字段,并生成了一组消息。现在我想把它们输出到<div class"panel">的一个地方,占位符"Errors will go here"当前就在那里。但是,我不知道如何让它工作。

如何在这个地方输出所有消息?

我的PHP代码

session_start();
require_once 'libs/PHPMailer/PHPMailerAutoload.php';
$errors = [];
if(isset($_POST['name'], $_POST['email'], $_POST['subject'], $_POST['message'])) {
$fields = [
'name' => $_POST['name'],
'email' => $_POST['email'],
'subject' => $_POST['subject'],
'message' => $_POST['message']
];
foreach($fields as $field => $data) {
    if(empty($data)) {
        $errors[] = 'The ' . $field . ' field is required.';
    }
}
} else {
$errors[] = 'Something went wrong.';
}
$_SESSION['errors'] = $errors;
header('Location: contact.php');
?>

HTML

<section id="main" class="container 75%">
                <header>
                    <h2>Contact Us</h2>
                    <p>Submit all questions and concerns here and we will respond as soon as possable!</p>
                </header>
                <div class="box">
                <div class="panel">
                Errors will go here
                </div>
                    <form method="post" action="contactformmail.php">
                        <div class="row uniform 50%">
                            <div class="6u 12u(mobilep)">
                                <input type="text" name="name" id="name" value="" placeholder="Name" />
                            </div>
                            <div class="6u 12u(mobilep)">
                                <input type="email" name="email" id="email" value="" placeholder="Email" />
                            </div>
                        </div>
                        <div class="row uniform 50%">
                            <div class="12u">
                                <input type="text" name="subject" id="subject" value="" placeholder="Subject" />
                            </div>
                        </div>
                        <div class="row uniform 50%">
                            <div class="12u">
                                <textarea name="message" id="message" placeholder="Enter your message" rows="6"></textarea>
                            </div>
                        </div>
                        <div class="row uniform">
                            <div class="12u">
                                <ul class="actions align-center">
                                    <li><input type="submit" value="Send Message" /></li>
                                </ul>
                            </div>
                        </div>
                    </form>
                </div>
            </section>

您当前的PHP代码所做的是将所有捕获的错误存储到数组中,错误,并将其写入$_SESSION['errors']变量。

由于HTML没有调用此变量,因此需要在HTML代码中添加一个echo-out。

要执行此操作,请在框中添加下面的代码。

<?php foreach($_SESSION['errors'] as $error) {
echo $error, '<br>';
} ?>