2015-12-03 63 views
-4

我使用这段代码,但是当我以雇主身份登录时,它一直在获取管理员会话我知道我的条件语句错误我应该怎么做?在不同的会话中登录3种方式

if ($username&&$password) 
      { 
       $query = mysqli_query($link,"select * from login where UserId = '$username'"); 
       $numrows = mysqli_num_rows($query); 
       if ($numrows!==0) 
       { 
        while($row = mysqli_fetch_assoc($query)) 
        { 
         $dbusername = $row['UserId']; 
         $dbpassword = $row['Password']; 
         $dbprivileges = $row['Privileges']; 
        } 
        if($username==$dbusername&&$password==$dbpassword) 
        { 
         //admin home page 
         if($dbprivileges=="Admin") 
         { 
          @$_SESSION['admin'] = $username; 
          header('Location:hris_admin_index.php'); 
         } 
         //company home page 
         elseif($dbprivileges=="Company") 
         { 
          @$_SESSION['employer'] = $username; 
          header('Location:hris_company_index.php'); 
         } 
         //employee home page 
         else 
         { 
          @$_SESSION['employee'] = $username; 
          header('Location:hris_employee_index.php'); 
         } 
+0

你必须学会​​如何调试。尝试在while循环之后放置** echo $ dbprivileges; exit; **。 – aceraven777

+0

你可以发布一切甚至数据库代码 – lyndact

+0

什么是错误抑制?此外,你应该[哈希你的密码](http://php.net/password_hash),而不是以纯文本形式存储它们,如果你使用准备好的语句使用mysqli是最安全的,或者至少你应该使用mysqli_real_escape_string以确保您的代码不容易受到SQL注入攻击。 – Mike

回答

0

试试这个,也记得要加session_start()

    if ($username && $password) 
        { 
        $query = mysqli_query($link, "SELECT * FROM login"); 
        while($row = mysqli_fetch_assoc($query)) 
        { 
        $dbusername = $row['UserId']; 
        $dbpassword = $row['Password']; 
        $dbprivileges = $row['Privileges']; 

        if($username == $dbusername && $password == $dbpassword) 
        { 
        //admin home page 
        if($dbprivileges == "Admin") 
        { 
         @$_SESSION['admin'] = $username; 
         header('Location:hris_admin_index.php'); 
        } 
        //company home page 
        elseif($dbprivileges == "Company") 
        { 
         @$_SESSION['employer'] = $username; 
         header('Location:hris_company_index.php'); 
        } 
        //employee home page 
        elseif($dbprivileges == "Employee") 
        { 
         @$_SESSION['employee'] = $username; 
         header('Location:hris_employee_index.php'); 
        } 
        } 
+0

即时通讯添加会话开始在顶部 –

+0

好的尝试可以解决一个问题 – lyndact