首页 > 解决方案 > 尝试使用 php mysql 登录

问题描述

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="../admin/css/styles.css"/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>


<body>
   <div class="container">
        <div class="row">
            <div class="col-lg-3 col-md-2"></div>
            <div class="col-lg-6 col-md-8 login-box">
                <div class="col-lg-12 login-key">
                    <i class="fa fa-key" aria-hidden="true"></i>
                </div>
                <div class="col-lg-12 login-title">
                    ADMIN PANEL
                </div>

                <div class="col-lg-12 login-form">
                    <div class="col-lg-12 login-form">
                        <form action="" method="POST">
                            <div class="form-group">
                                <label class="form-control-label">USERNAME</label>
                                <input type="text" name="username" class="form-control">
                            </div>
                            <div class="form-group">
                                <label class="form-control-label">PASSWORD</label>
                                <input type="password" name="password" class="form-control" i>
                            </div>

                            <div class="col-lg-12 loginbttm">
                                <div class="col-lg-6 login-btm login-text">
                                    <!-- Error Message -->
                                </div>
                                <div class="col-lg-6 login-btm login-button">
                                    <input type="submit" name="submit" class="btn btn-outline-primary">
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
                <div class="col-lg-3 col-md-2"></div>
            </div>
        </div>

  </body>
</html>


<?php

include 'db.php';



if(isset($_POST['submit'])){
    $username=$_POST['username'];
    $password=$_POST['password'];
$db=mysqli_select_db($conn,"admin");    
 echo   $sql= "SELECT * FROM admin WHERE username='$username' AND password='$password'";
    
       $result=mysqli_query($conn,$sql);
       $rows=mysqli_num_rows($result);
       
       if($rows == 1){
        echo 'hi';
       }
       else{
        echo 'failed';
       }
}
?>
我创建了数据库并插入了用户名和密码。数据库连接成功。这是我为登录页面编写的代码。我正在输入用户名和密码。我回显查询,它显示用户名和密码,但不回显“嗨”。它的回声失败了。错误在哪里。提前致谢。

标签: php

解决方案


这是因为您正在echo查询而不是实际执行它。

删除这个

echo $sql= "SELECT * FROM admin WHERE username='$username' AND password='$password'";

添加这个

$sql= "SELECT * FROM admin WHERE username='$username' AND password='$password'";

改进查询的几点,

  • 从不SELECT *,这是不好的做法,而是提及列名
  • 使用 PDO 甚至更好的 PDO 库 (IMO)

推荐阅读