具有会话的 PHP 登录系统无法登录


PHP Login System with sessions cannot login

>我正在研究登录系统。但是,我无法登录。我已经设置了我的数据库表。

登录.php

 <?php
 session_start();
 if(isset($_POST['login'])) {
    include_once("db.php");
    $username = strip_tags($_POST['username']);
    $password = strip_tags($_POST['password']);
    $username = stripslashes($username);
    $password = stripslashes($password);
    $username = mysqli_real_escape_string($db, $username);
    $password = mysqli_real_escape_string($db, $password);
    $password = md5($password);
    $sql = "SELECT * FROM users WHERE username='$username' LIMIT 1";
    $query = mysqli_query($db, $sql);
    $row = mysqli_fetch_array($query);
    $id = $row['id'];
    $db_password = $row['password'];
    if($password == $db_password) {
        $_SESSION['username'] = $username;
        $_SESSION['id'] = $id;
        header("Location: av_pocetna.html");
    } else {
        echo "You didn't enter the correct details!";
    }
}
 ?>
<html>
  <head>
<title>Login</title>
</head>
 <body>
<h1 style="font-family: Tahoma;">Login</h1>
<form action="login.php" method="post" enctype="multipart/form-data">
    <input placeholder="Username" name="username" type="text"  autofocus>
    <input placeholder="Password" name="password" type="password">
    <input name="login" type="submit" value="Login">
  </form>
 </body>
 </html>

这是数据库.php

<? php
$db=mysqli_connect('192.168.1.113:8080','root','hidden','av');
?>

用户表的关联编号用户名密码

编辑

编辑 复制副本 删除 删除1一个0cc175b9c0f1b6a831c399e269772661

你的form code看起来是正确的。只需像下面的login.php代码一样更改:-

 <?php
    session_start();
    error_reporting(E_ALL);
    ini_set('display_errors',1);
    $conn = mysqli_connect('host-name','user-name','password','database-name');
    if($conn){
        if(isset($_POST['username']) && isset($_POST['password'])) {
            $username = $_POST['username'];
            $password = $_POST['password'];
            $username = mysqli_real_escape_string($db, $username);
            $password = mysqli_real_escape_string($db, $password);
            $password = md5($password);
            $sql = "SELECT * FROM users WHERE username='$username' LIMIT 1";
            $query = mysqli_query($db, $sql);
            if($query){
                $row = mysqli_fetch_array($query);
                $id = $row['id'];
                $db_password = $row['password'];
                if($password == $db_password) {
                    $_SESSION['username'] = $username;
                    $_SESSION['id'] = $id;
                    header("Location: av_pocetna.html");
                } else {
                    echo "You didn't enter the correct details!";
                }
            }else{
                echo "query not executed because".mysqli_error($conn);
            }
        }
    }else{
        echo "db connection error".mysqli_connect_error();
    }
 ?>

注意:- 我只在这里添加了连接代码,所以在那里更改凭据。并使用相同的代码来检查是否有效?

此外,如果您正在处理本地工作,请将ip address更改为localhost并检查。如果它有效,那么它也将与include("db.php")一起使用。我的意思是说尝试$conn = mysqli_connect('localhost','root','aleksandar','av');

这是工作登录.php

<?php
 session_start();
 error_reporting(E_ALL);
ini_set('display_errors',1);
$conn = mysqli_connect('localhost','root','aleksandar','av');
$db = new mysqli('localhost','root','aleksandar','av');
if($conn){
    if(isset($_POST['username']) && isset($_POST['password'])) {
        $username = $_POST['username'];
        $password = $_POST['password'];
        $username = mysqli_real_escape_string($db, $username);
        $password = mysqli_real_escape_string($db, $password);
        $password = md5($password);
        $sql = "SELECT * FROM users WHERE username='$username' LIMIT 1";
        $query = mysqli_query($db, $sql);
        if($query){
            $row = mysqli_fetch_array($query);
            $id = $row['id'];
            $db_password = $row['password'];
            if($password == $db_password) {
                $_SESSION['username'] = $username;
                $_SESSION['id'] = $id;
                header("Location: av_pocetna.html");
            } else {
                echo "You didn't enter the correct details!";
            }
        }else{
            echo "query not executed because".mysqli_error($conn);
        }
    }
}else{
    echo "db connection error".mysqli_connect_error();
}
?>
<html>
 <head>
<title>Login</title>
   </head>
   <body>
   <h1 style="font-family: Tahoma;">Login</h1>
        <form action="login.php" method="post" enctype="multipart/form-data">
      <input placeholder="Username" name="username" type="text"      autofocus>
      <input placeholder="Password" name="password" type="password">
     <input name="login" type="submit" value="Login">
</form>
 </body>
</html>
哦,

好的。然后,让我们尝试一次调试一个步骤。在 db.php 文件中,使用以下命令:

   // Connecting to mysql database
    $db = new mysqli('192.168.1.113:8080','root','hidden','av');
    // Check for database connection error
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

如果出现任何错误,请将其转储到此处进行调试。

更新。

    // Connecting to mysql database
    $db = new mysqli('localhost','root','hidden','av');
    // Check for database connection error
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }