2016-07-01 26 views
-3

這裏是我的PHP登錄代碼,我有我的病情問題。我認爲。爲什麼我的PHP登錄代碼總是去到else語句,這是錯誤的用戶名和密碼?

<?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> 

每次我登錄到這一點,我經常去別的statment這是Wrong username and password總是顯示出來,即使我有權利憑證?我錯過了什麼?

我不需要在這個時候哈希我的密碼,我只需要一個答案,如果我可以有一個成功的登錄頁面。謝謝

+2

可能重複[PHP:「注意:未定義的變量」和「注意:未定義的索引」](http://stackoverflow.com/questions/4261133/ph p-notice-undefined-variable-and-notice-undefined-index) –

+3

和這個問題是你的其他問題的轉貼http://stackoverflow.com/questions/38112958/why-my-php-code-is-not-工作的地方你犯了同樣的錯誤。 –

+1

密碼應該散列。 – chris85

回答

1

嗨使用已經給name您的password字段name = "password"。但提交後您已經使用$password = $_POST['Password'];。使用$_POST['password']。這就是爲什麼你沒有得到任何result

你也可以像

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

在單行選擇數據庫,那麼你就需要使用mysqli_select_db();

+0

即使我使用'$ _POST = ['密碼']'仍然我的代碼去else語句。 :(@mamta – Jeyjey

+0

然後它可能是查詢執行中的問題,請使用此if(!$ stmt-> execute())echo $ stmt-> error;調試 – user1234

+0

哪裏部分代碼應該放那個先生? !:D @mamta – Jeyjey

0

更新你的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(); 
    } 

} 
+0

'mysqli_result Object([current_field] => 0 [field_count] => 10 [length] => [num_rows] => 1 [type] => 0)0'這就是最新發生的事情嗎? @Dipanwita Kundu – Jeyjey

相關問題