2016-03-24 18 views
0

私は現在学校プロジェクトに参加しており、3つの異なるタイプの役割があるサイトを行っています。3つの異なる役割、異なる3つのビュー

私たちのユーザーテーブルには、 "role"という名前の属性があります。このロールには、1、2、3の3つの値を持つ表があります。

1(管理者) 2(管理者) 3(ユーザー)です。

私がしたいこと:誰かがログインしているとき、コードはこのユーザーが持つロールのどの値を探して、このユーザーを "admin.php"(値が1の場合)、 "adminuser"にリダイレクトします。 php "(値が2の場合)または" user.php "(値が3の場合) これは現在のコードであり、ログインできるように機能しますが、同じページに送信されます。

if(isset($_POST['email'])) 
{ 
$query = <<<END 
SELECT email, password, userID, FROM user 
WHERE email = '{$_POST['email']}' 
AND password = '{$_POST['password']}' 
END; 
$res = $mysqli->query($query); 
if ($res->num_rows > 0) 
{ 
$row = $res->fetch_object(); 
$_SESSION["email"] = $row->email; 
$_SESSION["userID"] = $row->id; 
header("Location:admin.php"); 
    } 
    else 
{ 
echo "Fel email eller lösenord."; 
} 
} 
+6

問題が発生した場合は、お手数ですがご遠慮なくコードをご返信ください。ご迷惑をお掛けしてください。 – JimL

+0

'$ _SESSION [" userID "]'は何を含んでいますか? –

+0

これは現在番号が入っています。しかし、近い将来ライセンス番号のようなものになるでしょう。 –

答えて

0

ロールがユーザーテーブルにある場合は、単純な配列でこれを試してください。 希望の出力を得ることができる簡単なコードの下に。

$role = array("1"=> "Admin.php", "2"=> "Adminuser.php", "3"=> "user.php"); 
if(isset($_POST['email'])){ 
    $query = <<<END 
    SELECT email, password, userID, id FROM user 
    WHERE email = '{$_POST['email']}' 
    AND password = '{$_POST['password']}' 
    END; 
    $res = $mysqli->query($query); 
    if ($res->num_rows > 0){ 
    $row = $res->fetch_object(); 
    $_SESSION["email"] = $row->email; 
    $_SESSION["userID"] = $row->id; 

    //retrieve the user role from user-table, i use userid, you may use your own field 
    $query2 = <<<END 
    SELECT role FROM user-table 
    WHERE userid = '{$row->id}' 
    END; 
    $res2 = $mysqli->query($query2); 
    $row2 = $res2->fetch_object(); 

    header("Location: ".$role[$row2->role]); 
    }else{ 
    echo "Fel email eller lösenord."; 
    } 
} 
関連する問題