如何在登录表单中添加登录表单验证错误

时间:2016-02-18 13:01:58

标签: php

嗨,请原谅新手问题,因为我还在学习PHP。我试图做一个基本的表格验证。我试图在验证时发现任何错误,在表单字段中以红色显示。

如何在登录表单中添加登录表单验证错误,错误消息不会出现在loginform

<form  action="test.php" method="POST" >
                    <div class="logintable ">
                        <table  class="applyfont" style="border: 1px solid lightseagreen">
                            <tbody>
                                <tr id="login1">
                                    <td class="applyfontbold"><b>Login </b></td>
                                </tr>
                                <tr>
                                    <td style="padding-right:10px;">
                                        <input type="text" name="name" value="" placeholder="Username or Email" id="uname">
                                        <span class="error">* <?php echo $nameErr;?></span>
                                    </td>
                                </tr>
                                <tr> 
                                    <td>
                                        <input type="password" name="password" value="" placeholder="Password" id="password">
                                        <span class="error">* <?php echo $passeErr;?></span>
                                    </td>
                                </tr>
                                <tr> 
                                    <td>
                                        <p class="submit"><input type="submit" name="save" value="Submit"> </p>

                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        <div class="login-help applyfontlighter">
                                            <p>Forgot your password? <span id="footer"><u style="color:red;"><a href="#">Click here to reset it.</a></u></span></p>
                                        </div>
                                        <p id="new"><button type="button" class="btn btn-default btn-xs" >New Registers</button></p>
                                    </td>
                                </tr>
                            </tbody> 
                        </table>
                    </div>
                </form>
               

<?php

$nameErr = "";
$passErr = "";
$x = "typepass";
if (isset($_POST['save'])) {
    if (empty($_POST['name'])) {
        $nameErr .= "Name is required";
    } else {
        $name = $_POST['name'];
    }
    if (empty($_POST['password'])) {
        $passeErr .= "password is required";
    } elseif ($_POST['password'] !== $x) {
        $passeErr .= "password doesn't match";
    } else {
        $password = $_POST['password'];
    }

    echo "Username :" . " " . $name . "<br>" . "Password :" . " " . $password;
}
?>

2 个答案:

答案 0 :(得分:0)

使用当前代码,当出现错误时,您将设置2个变量:

$passeErr
$nameErr

您可以在登录表单中添加新的html标记,例如

<span class="error"></span>

在这个范围内,您可以使用php查看是否设置了变量。如果他们是你显示他们。如果他们不是你什么都不这样做:

您可以使用isset。在您的示例中,您尝试始终回显错误。即使在登录前未设置它们也会产生警告。

密码错误

<span class="error">
   if(isset($passeErr)){
     echo $passeErr;
   }
</span>

名称错误

<span class="error">
   if(isset($nameErr)){
      echo $nameErr;
   }
</span>

现在确保您在表单上方进行表单验证,它应该可以正常工作!

答案 1 :(得分:0)

<?php


$x = "typepass";
if (isset(trim($_POST['save']))) {
    if (empty($_POST['name'])) {
        $nameErr = "Name is required";
    } else {
        $name = $_POST['name'];
    }
    if (empty(trim($_POST['password']))) {
        $passeErr = "password is required";
    } elseif ($_POST['password'] !== $x) {
        $passeErr = "password doesn't match";
    } else {
        $password = $_POST['password'];
    }
if(isset($nameErr)||(isset($passErr)))
{
 echo $nameErr . "<br>" .$passErr;
}
else // no error
{
 echo "Username :" . " " . $name . "<br>" . "Password :" . " " . $password;
}

}
?>