我的登录系统不工作

hvvq6cgz  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(372)

在这里是我的html代码,它总是说,错误的用户名和密码,虽然我采取的数据从数据库,所以注册用户的用户名和密码。但仍然不起作用。而且必须用饼干来做。

<div class="container" id="driver" style="margin-top: 10%;">
        <h2>Авторизация</h2>
        <div class="col-lg-4">
            <p><?php if($check == false ){ echo "Wrong password or login!"; } ?></p>
            <form method="POST" action="">
                <div class="form-group">
                  <label for="user">Имя пользователя:</label>
                  <input type="text" class="form-control" id="user" placeholder="Ваше имя пользователя" name="name" required>
                </div>
                <div class="form-group">
                  <label for="pwd">Пароль:</label>
                  <input type="password" class="form-control" id="password" placeholder="Ваш пароль" name="password" required>
                </div>
                <button type="submit" class="btn btn-warning" name="login" style="background-color: #e6c300;">Войти</button>
            </form>
        </div>
    </div>

这里是php登录代码

<?php
include 'config.php';   
 include 'navbar.php';

if(isset($_COOKIE["taxi"]))
{
 header("location:index.php");
}

        $check = true;

        if(isset($_POST['login'])){
        $name = $_POST['name'];
        $password = $_POST['password'];

        $query = mysqli_query($con, "SELECT * FROM `driver` WHERE username='$name'");
        $user_data = mysqli_fetch_array($query, MYSQLI_BOTH);
        $a = var_dump($user_data);
        echo $a;
            if($user_data['password'] == $password){
                setcookie('taxi', $name);
                header("Location: index.php");
            }
            else{
                    $check = false;
                }
        }

?>
还有我的导航栏,用于定义是登录、注册还是注销

<?php
                  if (isset($_GET['SignOut'])) { 

                        if(isset($_COOKIE['taxi'])){ 
                            setcookie('taxi', '' , time() - 3600); 
                            unset($_COOKIE['taxi']); 
                        } 
                  } 

                        if(isset($_COOKIE['taxi'])) 
                        { 
                          echo '<a href="index.php?SignOut" name="SignOut" id="SignIn"><p style="color:white; margin-top:15px;">Log Out</p></a>' ; 
                        } 
                        else { 
                        echo 
                        '<li class="nav-links"><a href="signup.php" style="color: white;"><span class="glyphicon glyphicon-user" style="color: white;"></span> Register</a></li>
                         <li class="nav-links"><a href="login.php" style="color: white;"><span class="glyphicon glyphicon-log-in" style="color: white;"></span> Login</a></li>'; 
                        }

                ?>
kxe2p93d

kxe2p93d1#

检查测试结果 var_dump($user_data); 确定是否 $user_data['password'] 有价值。
或者您可以跳过所有这些复杂的事情,将sql命令改为

$query = mysqli_query($con, "SELECT * FROM `driver` WHERE username='$name' AND password='$password'");'

然后检查 mysqli_num_rows($query) == 1 . 这样,您就可以确保输入的用户名密码是正确的(通过sql命令检查),并且通过检查该用户名和密码有一个有效的记录

if(mysqli_num_rows($query) == 1){
   // There is a user with valid credentials
   setcookie('taxi', $name);
   header("Location: index.php");
}else {
   $check = false;
}

希望这有帮助

相关问题