我检查了$_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>
答案 0 :(得分:1)
您当前的PHP代码所做的是它将所有捕获的错误存储到数组中,错误并将其写入$ _SESSION ['errors']变量。
由于您的HTML没有调用此变量,因此您需要在html代码中添加一个echo。
为此,请在框中添加以下代码。
<?php foreach($_SESSION['errors'] as $error) {
echo $error, '<br>';
} ?>