2016-02-14 2 views
0

У меня есть следующий код, который я пытался изменить для использования с двумя пользователями (нижняя половина).Различают типы пользователей

Что я хочу, так это то, что когда пользователь входит в систему, их логин-идентификатор находится в таблице, а затем обнаруживается их User_Role_ID.

Если его 1, он переходит на определенную страницу, если его 2 переходит на другую страницу.

if(count($_POST)>0) { 
    $result = mysqli_query($conn, "SELECT id,Login_ID,Name,User_Role_ID FROM user WHERE Login_ID='" . $_POST["id"] . "' "); 
    $row = mysqli_fetch_array($result); 
    if(is_array($row)) { 
     $_SESSION["Login_ID"] = $row[Login_ID]; 
    } 
    else {  
     echo "Invalid ID!";  
    }  
} 
if($_SESSION["User_Role_ID"] == "2") {  
    header("Location: home.php"); 
} 
else if($_SESSION['User_Role_ID'] == 1) {  
    header("Location: www.google.com"); 
} 
+0

'$ _SES SION ["Login_ID"] = $ row [Login_ID]; 'должен быть' $ _SESSION ["Login_ID"] = $ row ['Login_ID']; ' – Matt

+0

В вашем запросе есть' User_ID_Role' ('SELECT id, Login_ID, Name, User_ID_Role FROM ...'), но проверяют 'User_Role_ID' (' if ($ _ SESSION ["User_Role_ID"]) == ... '). Они должны быть одинаковыми? – Sean

+0

Что происходит в настоящее время? Пути должны быть абсолютными. – chris85

ответ

1

Может быть, вы могли бы использовать switch

$result = mysqli_query($conn, "SELECT id,Login_ID,Name,User_ID_Role FROM user WHERE Login_ID='" . $_POST["id"] . "' "); 
$row = mysqli_fetch_array($result); 
if(is_array($row)) { 
    $_SESSION["Login_ID"] = $row[Login_ID]; 
    switch ($row["User_ID_Role"]){  
     case "1": header("Location: www.google.com"); break; 
     case "2": header("Location: home.php"); break; 
    } 
} 
else {  
    echo "Invalid ID!";  
} 
+0

сторона примечание: 'User_ID_Role'! =' User_Role_ID' -> '" SELECT id, Login_ID, Name, User_ID_Role FROM ... '&&' $ row ["User_Role_ID"] '. Кроме того,' $ row [Login_ID] 'должен измените на '$ row ['Login_ID']', чтобы предотвратить предупреждение Неизвестной константы. – Sean

+0

Отлично! Теперь, если пользователь получит доступ к странице администратора (2) через url, я бы просто использовал if (isset ($ _SESSION ['User_Role_ID'] == 2)) {content} – JohnyChew

+0

Это может сработать. Лучше использовать контроллер. –

0

Вы должны определить $ _SESSION [ "User_Role_ID"] и у вас есть ошибки

$_SESSION["Login_ID"] = $row[Login_ID] 

ваш код должен быть:

if(is_array($row)) { 
    $_SESSION["Login_ID"] = $row["Login_ID"]; 
    $_SESSION["User_Role_ID"]=$row["User_Role_ID"]; 
    } 
Смежные вопросы