如何在html页面中显示php错误消息?

时间:2018-11-11 13:42:06

标签: javascript php jquery html css

我想在验证登录期间在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 [],如下图所示。

enter image description here

1 个答案:

答案 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"字段。