注册有效,但不知何故登录无效

Registration works but somehow login not working

我是 PHP 的新手,正在遵循 login_registration 脚本,注册过程正常,用户已添加到数据库中,但是,当我尝试登录时,它显示错误 I检查 php.error 登录 wamp 服务器,它说,

PHP 1. {main}() C:\wamp64\www\php\login_register_system\login.php:0

这是我的代码

connect.inc.php

<?php
//$conn_error = "could not connect";
$mysql_host= "localhost";
$mysql_user = "root";
$mysql_pass ="";
$mysql_db ="a_database";

$conn = mysqli_connect($mysql_host,$mysql_user,$mysql_pass,$mysql_db);

 /*if(!mysqli_connect($mysql_host,$mysql_user,$mysql_pass) && !mysqli_select_db($mysql_db)){
    die($conn_error);
 }
 */
 if(!$conn){
     die("Connection failed: ". mysqli_connect_error());

 }

?>

registration.php

<!DOCTYPE html>
<html>
<head>
<meta charset ="utf-8">
<title>Registartion</title>
<link rel ="stylesheet"href="style.css"/>
</head>
<body>
 <?php 
 require "connect.inc.php";

  if(isset($_REQUEST["username"])){

      $username =stripslashes($_REQUEST["username"]);
      $username =mysqli_real_escape_string($conn,$username);
      $email =stripslashes($_REQUEST["email"]);
      $email =mysqli_real_escape_string($conn,$email);
      $password =stripslashes($_REQUEST["password"]);
      $password =mysqli_real_escape_string($conn,$password);
      $trn_date = date("Y-m-d H:i:s");

           $query ="INSERT INTO `users2` (username,password,email,trn_date) VALUES('$username','".md5($password)."','$email','$trn_date')";
           $result =mysqli_query($conn,$query);
           if($result){
               echo "<div class='form'>
               <h3>You are registered succesfully</h3><br>
               Click here to <a href='login.php'>Log in</a>
               </div>";
           }
  }else{
 ?>

 <div class="form">
   <h1>Registration</h1>
   <form name="registration" action ="registration.php" method="post">
       <input type="text" name ="username" placeholder ="Username" required/>
       <input type="text" name ="email" placeholder ="Email" required/>
       <input type="password" name ="password" placeholder ="password" required/>
       <input type="submit" type="submit" value="Register"/>
   </form>
 </div><!--form-->
 <?php } ?>
</body>
</html>

login.php

<!DOCTYPE html>
<html>
<head>
<meta charset ="utf-8">
<title>Login</title>
<link rel ="stylesheet"href="style.css"/>
</head>
<body>
 <?php 
//ini_set('display_errors','1');
//error_reporting(E_ALL);
  require "connect.inc.php";
  session_start();
  if(isset($_POST["username"])){
      $username = stripslashes($_REQUEST["username"]);
      $username = mysqli_real_connect($conn,$username);
      $username = mysqli_real_escape_string($conn,$password);

      $query ="SELECT * FROM `users` WHERE username ='$username' and password ='".md5($password)."' ";

      $result =mysqli_query($conn,$query) or die(mysql_error());
      $rows = mysqli_num_rows($result);

      if($rows==1){
        $_SESSION["username"] = $username;
        header("Location: index.php");
      }else{
          echo "<div class='form'>
           <h3>Username/password is incorrect</h3><br>
           Click here to <a href='login.php'>Login</a>
          </div>";
      }
  }else{
 ?>
 <div class="form">
  <h1>Login </h1>
  <form action="login.php" method="post" name="login">
       <input type="text" name ="username" placeholder ="Username" required/>
       <input type="passowrd" name ="password" placeholder ="password" required/>
       <input type="submit" type="submit" value="Login"/>
  </form>
 </div>
 <?php } ?>
</body>
</html>

logout.php

<?php
session_start();
if(session_destroy()){
    header("Location: login.php");
}
?>

index.php

<?php
  include("auth.php");
?>

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Welcome home</title>

 </head>
 <body>
 <div class="form">
      <p>Welcome <?php echo $_SESSION["username"];?></p>
      <p>This is secure area</p>
      <a href="logout.php">Logout</a>
  </div>
 </body>
</html>

我们将不胜感激任何帮助。谢谢。

请注意,这只是为了学习目的。我知道有瑕疵但请放轻松

只要改变这个,

$username = stripslashes($_REQUEST["username"]);
$username = mysqli_real_connect($conn,$username);

$password =stripslashes($_REQUEST["password"]);
$password = mysqli_real_escape_string($conn,$password);

以下,

$username = stripslashes($_REQUEST['username']);
$username = mysqli_real_escape_string($conn, $username);

$password = stripslashes($_REQUEST['password']);
$password = mysqli_real_escape_string($conn, $password);

我希望您只有一个用户与数据库中输入的凭据相关。希望对你有帮助!

谢谢我解决了..问题是 login.php 中的这一行 $query ="SELECT * FROM users WHERE username ='$username' and password ='".md5($password)."' ";..

正确的应该是这个

 $query ="SELECT * FROM `users2` WHERE username ='$username' and password ='".md5($password)."' ";

我正在检查用户 table 中的数据,而我在用户 2 table 中注册。因为我有很多 table 造成混淆