如何输出先前在数组中收集的缺失表单字段的通知?

时间:2016-05-17 02:24:27

标签: php html arrays

我检查了$_POST数据是否缺少必填字段并生成了一系列消息。现在我想将它们放在一个地方的<div class"panel">中,占位符&#34;错误将在这里输出&#34;目前是。但是,我不知道如何让它发挥作用。

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

我的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>

1 个答案:

答案 0 :(得分:1)

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

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

为此,请在框中添加以下代码。

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