我想在验证登录期间在html页面中显示错误信息。 请检查我的代码:
<form action="processlogin.php" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="Login">
**<br><br>
<span id="modal_errors_1" class="bg-danger"></span>**
</form>
<?php
$errors = array();
$required = array(
'email' => 'Email',
'password' => 'Password',
);
// check if all required fileds are fill out
foreach ($required as $field => $display) {
if (empty($_POST[$field]) || $_POST[$field] == '') {
$errors[] = $display.' is required.';
}
}
**// Assume both fields are empty so it must give the error message**
if (empty($_POST['email']) || empty($_POST['password'])) {
$errors[] = 'You must provide email and password.';
}
// VAlidate Email
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = 'Invalid email format';
}
// Display Errrors Code
function display_errors1($errors1){
$display = '#modal_errors_1';
foreach ($errors1 as $error) {
$display .= '#modal_errors_1'.$error.'</span></li>';
}
$display .= '#modal_errors_1';
return $display;
}
?>
现在,我要在红色背景中带有白色文本的“登录提交”按钮之后显示$ errors [],如下图所示。
答案 0 :(得分:1)
如果您的HTML表单和PHP $ _POST处理例程位于同一脚本中,则仅在表单之前进行处理:
$errors = [];
$required = [
'email' => 'Email',
'password' => 'Password',
];
// check if all required fileds are fill out
foreach ($required as $field => $display) {
if (empty($_POST[$field]) || $_POST[$field] == '') {
$errors[] = $display.' is required.';
}
}
$required_msg = '';
if(count($errors)) {
$required_msg = '<span id="modal_errors_1" class="bg-danger">'
. implode('<br/>', $errors)
. '</span>';
}
?>
<form action="processlogin.php" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="Login">
**<br><br>
<?= $required_msg ?>**
</form>
或者,如果它在另一个脚本中,只需使用一个参数重定向回您的登录表单,例如:login.php?errlogin,然后:
$required_msg = '';
if(isset($_GET['errlogin'])) {
$required_msg = '<span id="modal_errors_1" class="bg-danger">
Login is required
</span>';
}
?>
<form action="processlogin.php" method="post">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="Login">
**<br><br>
<?= $required_msg ?>**
</form>
编辑:并在表单字段中也使用HTML必需的参数:
<input type="text" name="username" required>
如果您的用户名是一封电子邮件,请使用type="email"
字段。