为什么我的php登录代码总是转到错误的用户名和密码的else语句?

为什么我的php登录代码总是转到错误的用户名和密码的else语句?,php,mysql,Php,Mysql,这是我的php登录代码,我的条件有问题。我想 <?php session_start(); $servername = "localhost"; $username = "root"; $password = ""; $mysql_database = "practiceLogin"; $conn = mysqli_connect($servername, $username, $password) or die ("Connection failed: " . mysqli_c

这是我的php登录代码,我的条件有问题。我想

<?php


session_start();

$servername = "localhost";
$username = "root";
$password = "";
$mysql_database = "practiceLogin";


$conn = mysqli_connect($servername, $username, $password) or die ("Connection failed: " . mysqli_connect_error());
mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong");




if (isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['Password'];

$stmt = $conn->prepare("SELECT * FROM tbl_account WHERE uName = ? AND uPassword = ?");
$stmt->bind_param('ss',$username,$password);
$stmt->execute();
$get_result=$stmt->get_result();
$row_count= $get_result->num_rows;

$stmt->close();
$conn->close();

if ($row_count>0){
$_SESSION['User_name'] = $username;


echo "Login Success!";
exit();
}else{
echo "Wrong username and password";
exit();
}

}

?>

<html>
<head>
<title>Login</title>
</head>

<body>
<form action = "?" method = "POST">
<input type = "text" name="username"><br>
<input type = "password" name = "password"><br>
<input type = "submit" name = "submit" value = "Login"></br>
<a href = "register.php">Create Account</a>
</form>
</body>
</html>
每次我登录到这个网站,我总是去其他网站,这是错误的用户名和密码总是出现,即使我有正确的凭据?我错过了什么

我不需要散列我的密码在这个时候,我只需要一个答案,如果我可以有一个成功的登录页面。感谢您将密码字段的名称命名为name=password。但在提交后,您已使用$password=$\u POST['password'];。使用$\u POST['password']。这就是为什么你没有得到任何结果

也可以选择单行的数据库,如

$conn = mysqli_connect($servername, $username, $password,$databasename);

那么您就不需要使用mysqli\u select\u db

更新您的php部件&取消注释注释注释行,以便您可以获得确切的功能:

if (isset($_POST['submit'])){
    $username = $_POST['username'];
    $password = $_POST['password'];

    $stmt = $conn->prepare("SELECT * FROM tbl_account WHERE uName = ? AND uPassword = ?");
    $stmt->bind_param('ss',$username,$password);
    $stmt->execute() or die($stmt->error);
    $get_result=$stmt->get_result();
    //print_r($get_result); //DEBUG purpose 
    $row_count= $get_result->num_rows;
   //print_r($row_count); die;// DEBUG purpose 
    $stmt->close();
    $conn->close();

   if ($row_count>0){
       $_SESSION['User_name'] = $username;
       echo "Login Success!";
       exit();
   }else{
      echo "Wrong username and password";
       exit();
   }

}

此问题可能与的重复,并且此问题是您的另一个问题的复述,您在该问题中犯了相同的错误。应该对密码进行哈希运算。即使我使用$\u POST=['password'],我的代码仍会转到else语句:@Mamtat如果在查询执行过程中出现问题,请使用此选项$stmt->执行echo$stmt->错误;去调试代码的哪一部分,先生?非常感谢,先生D@mamtamysqli\u结果对象[当前字段]=>0[字段计数]=>10[长度]=>[行数]=>1[类型]=>0这是怎么回事,可以吗@迪潘维塔昆杜酒店