2015-10-17 102 views
-1

我有以下腳本:登錄頁面不重定向到主頁

//Possible solution for logging a user in below. 
if($result = mysqli_query($db,"SELECT password FROM USERS WHERE password = '". $password ."' AND username = '". $username ."'")){ 
    $count = $result->num_rows; 
    $accounttype = mysqli_query($db, "SELECT AccountType FROM USERS WHERE username ='". $username."'"); 
    if($count>=1){ 
     if($accounttype == "tradesmen"){ 
      include('../html/WelcomeCustomer.html'); 
     } 
     else if($accounttype == "customer"){ 
      include('../html/WelcomeTrade.html'); 
     } 
    } 
    else{ 
     echo "The login credentials were incorrect"; 
    } 
} 

我知道有一個以上的幾件事錯在安全方面該實施多。我計劃在登錄工作後解決此問題。

現在我只想讓登錄的用戶當我運行此我得到一個空白頁,使用以下賬戶:

username, password, AccountType: test, test, tradesmen. 
username, password, AccountType: work, work, customer. 

我有錯誤報告打開,我什麼也沒得到。可能是腳本沒有重定向用戶的原因是什麼?

回答

0

好吧,你不是redirecting的控件。此聲明include('../html/WelcomeCustomer.html');將只是includeHTML文件而不是redirecting它。

所以你需要做下面的事情。你也不必加倍查詢數據庫

$mysqli = new mysqli("localhost", "my_user", "my_password", "db_name"); 
$result = $mysqli->query($db,"SELECT * FROM USERS WHERE password = '". $password ."' AND username = '". $username ."'"); 
$count = $result->num_rows; 
if($count){ 
    $row = $result->fetch_assoc(); 
    if($row['AccountType'] == "tradesmen"){ 
     header('Location: ../html/WelcomeCustomer.html'); 
    } 
    else if($row['AccountType'] == "customer"){ 
     header('Location: ../html/WelcomeTrade.html'); 
    } 
} 
else{ 
    echo "The login credentials were incorrect"; 
} 

}

只是改變你的include報表 我發現,你是直接匹配objectif條件,你需要先fetch數據和之後進行比較。

重要

在一些地方,你使用面向對象的風格$ result-> NUM_ROWS;,並在一些地方,你正在使用程序風格mysqli_query。因此,我建議你使用其中的一個,我已經更新了我的答案與面向對象的風格

+0

所以我改變了他們,仍然可以得到一個空白屏幕沒有任何錯誤。在我根據賬戶類型登錄之前,我只有一個主頁,包括正在工作。 –

+0

隨着您修改代碼,只有第一個if和else正在工作。否則,如果總是出現沒有錯誤的白色屏幕。 –

+0

如果數據庫中只有兩種類型,只需使用'else' – Mubin