PDO:登录验证

时间:2016-12-29 04:21:54

标签: php validation pdo login

在这里和那里环顾四周后,我设法创建了一个简单的登录。我可以使用我的用户ID和密码登录,但不幸的是,登录验证不起作用。当我输入错误的密码或将文本字段留空并单击登录时,表单将仅重置。它没有显示错误消息。我确定我错过了一些东西,但我不知道它是什么。

请帮帮我。谢谢:))

这是我的代码:

的index.php

<?php
session_start();

$conn = new PDO ('mysql:host=localhost;dbname=test','root','');

if (isset($_POST['login'])){
    $UserId = $_POST['UserId'];
    $UserPwd = $_POST['UserPwd'];


if(empty($UserId) && empty($UserPwd)) {
    $message = "Username/Password con't be empty";
    } 
        else 
            {
            $sql = "SELECT UserId, UserPwd FROM user WHERE UserId=? AND UserPwd=? ";
            $query = $conn->prepare($sql);
            $query->execute(array($UserId,$UserPwd));

        if($query->rowCount() >= 1) {
            $_SESSION['UserId'] = $UserId;
            header("location: login.php");
            } 
            else 
                {
                $message = "Username/Password is wrong";
            }
        }
    }
?>

<html>
    <head><title>Login</title></head>
    <body>
        <form method="post" name="login">
            <input type="text" name="UserId">
            <input type="text" name="UserPwd">
            <input type="submit" name="login" value="Login">
        </form>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

你只是忘了回复你的$message。这就是你没有得到任何信息的原因。

在页面顶部声明您的消息

$message = "";   

 <html>
        <head><title>Login</title></head>
        <body>
            <span><?php echo $message?></span>// echo your message here
            <form method="post" name="login">
                <input type="text" name="UserId">
                <input type="text" name="UserPwd">
                <input type="submit" name="login" value="Login">
            </form>
        </body>
    </html>