2017-03-02 210 views
0

我已經經歷過類似的問題,我想我已經實現了所有的想法。 我在登錄頁面兩種形式,一種爲管理員登錄名和一個員工登錄php在一個頁面上處理多個表單處理

第一張表單按鈕名稱=「登陸」

第二種形式有一個按鈕名爲「Login2身份」

管理員登錄正常工作。這是它的代碼

if (isset($_POST['login'])) 

    { $username = mysqli_real_escape_string($con,$_POST['username']); 
     $pwd  = md5($_POST['password']); 

     if (isset($username) == true && isset($pwd) == true){ 

     $login = login($username, $pwd); 

     var_dump($login); 
     if($login != null) { 

      $_SESSION ['user_id'] = $login ['buss_id']; 
      $_SESSION ['usernameholder'] = $login ['username']; 
      ob_start(); 

      if ($login['level'] =='1') 
       {?> 
       <script> 
         window.location.href = "sadmin/index.php"; 
        </script> <?php } 
        else if($login['level'] =='2') { ?> 
        <script> 
         window.location.href = "user_admin/index.php"; 
        </script> 

        <?php } else if($login['level'] =='3') { ?> 
        <script> 
         window.location.href = "reps/index.php"; 
        </script> 
        <?php 
        } /* end of login levels. */ 


     } /* /if $login !=null */ 
     } /* /if $login = login */ 
     } /*/if isset el $_POST */ 

和功能登錄本

function login($username, $password) 
{ $db_host="localhost"; 
    $db_username="root"; 
    $db_password=""; 
    $db_name="dbname"; 
    $con=mysqli_connect($db_host, $db_username,$db_password, $db_name); 

    $qry = "SELECT * FROM `businesses` WHERE `username` = '$username' AND `password` = '$password' AND `active` = 1 LIMIT 1"; 
    $sql = mysqli_query($con,$qry); 
    while($row = mysqli_fetch_array($sql)) 
    { 
     return $row; 
    } } 

我所做的是簡單地複製粘貼登錄碼和作出這樣$ USERNAME2

$名稱pwd2等...

並將功能中的查詢更改爲此

$qry2 = "SELECT * FROM `employees` WHERE `username` = '$username2' AND `password` = '$password2' AND `active` = 1 LIMIT 1"; 

正如你可能已經注意到我做了var_dump($ login),所以我做了var_dump($ login2)並且一直返回一個NULL值。我的代碼有什麼問題?

我要添加對任何人想看看它

if (isset($_POST['login2'])) 

    { $username2 = mysqli_real_escape_string($con,$_POST['username2']); 
     $pwd2  = md5($_POST['password2']); 

     if (isset($username2) == true && isset($pwd2) == true){ 

     $login2 = login_employee($username2, $pwd2); 

     var_dump($login2); 
     if($login2 != null) { 

      $_SESSION ['works_for'] = $login2 ['buss_id_fk']; 
      $_SESSION ['emp_id'] = $login2 ['emp_id']; 
      $_SESSION ['user_name'] = $login2 ['username']; 
      ob_start(); 

      if ($login_employee['level'] =='1') 
       {?> 
       <script> 
         window.location.href = "sadmin/index.php"; 
        </script> <?php } 
        else if($login_employee['level'] =='2') { ?> 
        <script> 
         window.location.href = "user_admin/index.php"; 
        </script> 

        <?php } else if($login_employee['level'] =='3') { ?> 
        <script> 
         window.location.href = "reps/index.php"; 
        </script> 
        <?php 
        } /* end of login levels. */ 


     } /* /if $login !=null */ 
     } /* /if $login = login */ 
    } /*/if isset el $_POST */ 

的Login2身份代碼,這是功能login_employee碼

function login_employee($username2, $password2) 
{ $db_host="localhost"; 
    $db_username="root"; 
    $db_password=""; 
    $db_name="leadapp"; 
    $con=mysqli_connect($db_host, $db_username,$db_password, $db_name); 

    $qry2 = "SELECT * FROM `employees` WHERE `username` = '$username2' AND `password` = '$password2' AND `active` = 1 LIMIT 1"; 
    $sql2 = mysqli_query($con,$qry2); 
    while($row2 = mysqli_fetch_array($sql2)) 
    { 
     return $row2; 
    } } 

    ?> 

和公正的間隙的緣故,我」添加一個屏幕截圖,不是我的表單的代碼。 enter image description here

+0

你重命名函數登錄($用戶名,$密碼)...? – bxN5

+0

是的,我做了login_employee($ username2,$ password2) – Mar1ak

+0

難以猜測,更好的顯示非工作代碼 – bxN5

回答

1

讓我們login_employee功能的一些debag

function login_employee($username2, $password2) 
{ $db_host="localhost"; 
    $db_username="root"; 
    $db_password=""; 
    $db_name="leadapp"; 
    $con=mysqli_connect($db_host, $db_username,$db_password, $db_name); 
    var_dump($username2); var_dump($password2); 
    $qry2 = "SELECT * FROM `employees` WHERE `username` = '$username2' AND `password` = '$password2' AND `active` = 1 LIMIT 1"; 
    $sql2 = mysqli_query($con,$qry2); 
    var_dump(mysqli_fetch_array($sql2)); 
    while($row2 = mysqli_fetch_array($sql2)) 
    { 
     return $row2; 
    } } 

    ?> 

所以前兩個變種轉儲你的名字和密碼,辦理入住手續後,如果該值真的分貝員工

如果後續代碼var_dump(mysqli_fetch_array( $ SQL2));不要返回你的數據庫行 - 這意味着你有空,因爲在數據庫中沒有匹配行

+0

這就是讓我瘋狂的東西,它返回NULL。該表存在,就像持有管理員的表一樣。它是相同的代碼,相同的數據庫,只有不同的表,並且這兩個表確實存在。 管理員在表業務。 https://gyazo.com/ebe0c65d4b8b77304d39d61b6460e456 – Mar1ak

+0

var_dump($ qry2)在這裏粘貼pls和phpmyadmin中的查詢結果副本 – bxN5

+0

好吧,現在我們正在某個地方,這就是我所得到的。 string(126)「SELECT * FROM'employees' WHERE'username' ='tr'AND'password' ='c4ca4238a0b923820dcc509a6f75849b'AND'active' = 1 LIMIT 1」 它選擇正確的哈希密碼,但在最後,任何想法爲什麼? – Mar1ak