简体   繁体   English

登录表单无效的用户名/密码

[英]Login Form Invalid username/password

I have a login form but even if i type a correct email and password i still get invalid username/password. 我有一个登录表单,但是即使我输入了正确的电子邮件和密码,我仍然会得到无效的用户名/密码。 I'm looking at my code and tried debugging it but i can't seem to find the problem. 我正在查看我的代码并尝试调试它,但似乎找不到问题。

  • Form 形成

     <form method="post" action = 'plogin.php'> <h2 class="sr-only">Login Form</h2> <div class="illustration"><i class="icon ion-ios-navigate"></i></div> <div class="form-group"><input class="form-control" type="email" name="email" placeholder="Е-маил"></div> <div class="form-group"><input class="form-control" type="password" name="password" placeholder="Лозинка"></div> <div class="form-group"><button class="btn btn-primary btn-block" type="submit">Најава</button></div><a href="#" class="forgot">Ја заборавивте лозинката? Кликнете овде.</a></form> 

  • Form Validation 表格验证

     if(!empty($_POST)) { include('includes/general.php'); if(!$connection){ die("Failed to connect to database ".mysqli_connect_error()); } $email = mysqli_real_escape_string($connection, $_POST['email']); $password = mysqli_real_escape_string($connection, $_POST['password']); $hashedPassword = hash('SHA256', $password); $query = "SELECT * FROM users WHERE email = '$email' AND password = '$password'"; $result = mysqli_query($connection, $query) or die (mysqli_error($connection)); if(mysqli_num_rows($result) > 0) { $_SESSION = mysqli_fetch_array($result); header('location: user.php'); } else { echo "<script>alert('invalid username/password'); window.location.href= 'login.php';</script>"; } } else { header('location: index.php'); 

You hash the password, but don't use the hash... 您对密码进行哈希处理,但不要使用哈希...

if(!empty($_POST)) {
    include('includes/general.php');
    if(!$connection){
        die("Failed to connect to database ".mysqli_connect_error());
    }
    $email = mysqli_real_escape_string($connection, $_POST['email']);
    $password = mysqli_real_escape_string($connection, $_POST['password']);
    $hashedPassword = hash('SHA256', $password);
    $query = "SELECT * FROM users WHERE email = '$email' AND password = '$hashedPassword'";
    $result = mysqli_query($connection, $query) or die (mysqli_error($connection));
    if(mysqli_num_rows($result) > 0) {
        $_SESSION = mysqli_fetch_array($result);
        header('location: user.php');
    } else {
        echo "<script>alert('invalid username/password');
            window.location.href= 'login.php';</script>";
    }
} else {
    header('location: index.php');

Maybe try the code above 也许尝试上面的代码

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM