2017-09-04 118 views
-2

我做了一個登錄代碼,但查詢不工作,它一直說這個賬戶不正確,所以我認爲這是查詢不好。mysqli變量在查詢不起作用

'SELECT * FROM `hexa-it-login` WHERE `e_mail`="'.$e_mail.'" AND `password`="'.$password.'"' 

這裏是完整的代碼。

require 'connect.php'; 
if(isset($_POST['login'])){ 
    $e_mail = $_POST['e_mail']; 
    $password = $_POST['password']; 
    $result = mysqli_query($con, 'SELECT * FROM `hexa-it-login` WHERE `e_mail`="'.$e_mail.'" AND `password`="'.$password.'"'); 
    if(mysqli_num_rows($result)==1){ 
     $_SESSION['e_mail'] = $e_mail; 
     header('Location: ../paneel0.php'); 
    } 
    else 
     echo "Dit account bestaat niet!"; 
} 
+1

查詢不太好,因爲您使用原始字符串連接而不是使用預準備語句。您的查詢很容易被SQL注入,導致數據庫發生不好的事情。 –

+0

我以爲2017年每個人都使用了準備好的語句,但看起來我錯了......首先查看這個鏈接,如何使用準備好的語句:http://php.net/manual/en/mysqli.prepare.php –

+0

可能密碼存儲在數據庫中**加密**一個並通過** Plain **密碼檢查登錄。這可能是執行其他部分的原因之一。 –

回答

-4

試着做下面的事情更具體,

首先使用mysqli_error,它會讓你知道,如果有任何類型的錯誤,

if (!$result = mysqli_query($con, 'SELECT * FROM `hexa-it-login` WHERE `e_mail`="'.$e_mail.'" AND `password`="'.$password.'"')) 
    { 
     echo("Error description: " . mysqli_error($con)); 
    } 

第二,一定如果用戶確實存在於數據庫中。

這不是你的問題的確切解決方案,但這可能會導致你的結果。

+1

* Paaji *,請在問題的評論部分提出建議。這不是一個答案。 –

+1

@NanaPartykar我想你錯過了我的帖子的最後一行 –

+0

我忘記了我的數據庫hahaha加密的密碼whas md5。無論如何,這就是Thx! –