2016-04-24 10 views
-1

現在、顧客のためのウェブサイトを作成しています。ログインしているときに、すべてのユーザと管理者向けのページを用意したいと思っています。今は、このような:ユーザーの役割に応じて異なるサイトにリダイレクト

while($row = mysqli_fetch_array($select_user_query)) { 
     $db_user_id = $row['user_id']; 
     $db_user_email = $row['user_email']; 
     $db_user_password = $row['user_password']; 
     $db_user_firstname = $row['user_firstname']; 
     $db_user_lastname = $row['user_lastname']; 
     $db_user_role = $row['user_role']; 
    } 
    $password = crypt($password, $db_user_password); 
    if($user_email === $db_user_email && $password === $db_user_password) { 
     $_SESSION['user_email'] = $db_user_email; 
     $_SESSION['user_firstname'] = $db_user_firstname; 
     $_SESSION['user_lastname'] = $db_user_lastname; 
     $_SESSION['user_password'] = $db_user_password; 
     $_SESSION['user_role'] = $db_user_role; 
     $_SESSION['user_id'] = $db_user_id; 
     header("Location: ../admin "); 
    } 
    else { 
     header("Location: ../index.php "); 
    } 
} 

しかし、私は彼が管理者の場合は、彼の$ USER_ROLEは、加入者または管理者であれば、加入者をユーザーに送り、いずれかのスクリプトを作りたいです。

+0

あなたは 'user_role'値をチェックするための別の' if'条件を追加していないのはなぜ? – Hatef

+0

これで、管理者だけが加入者ではなく作業しています。次に、インデックスにリダイレクトしてそこにとどまるだけです。 –

答えて

1

私はあなたのシナリオを理解している場合、解決策は、IFの終わりの部分を変更することです:

while($row = mysqli_fetch_array($select_user_query)) { 
    $db_user_id = $row['user_id']; 
    $db_user_email = $row['user_email']; 
    $db_user_password = $row['user_password']; 
    $db_user_firstname = $row['user_firstname']; 
    $db_user_lastname = $row['user_lastname']; 
    $db_user_role = $row['user_role']; 
} 

$password = crypt($password, $db_user_password); 
if($user_email === $db_user_email && $password === $db_user_password) { 
    $_SESSION['user_email'] = $db_user_email; 
    $_SESSION['user_firstname'] = $db_user_firstname; 
    $_SESSION['user_lastname'] = $db_user_lastname; 
    $_SESSION['user_password'] = $db_user_password; 
    $_SESSION['user_role'] = $db_user_role; 
    $_SESSION['user_id'] = $db_user_id; 
    if($db_user_role == 'admin') header("Location: ../admin"); 
    elseif($db_user_role == 'subscriber') header("Location: ../subscriber"); 
    die(); 
} 

header("Location: ../index.php "); 
+0

ありがとうございます! :)私はちょっと私はまだシャープではないので、PHPにちょっと新しいです。しかし、これはうまくいった! –

0

私は資格情報が正しいかどうかをチェックするif文で、if文を作ってみました。私は、このif文を作った:

<?php 
if(isset($_SESSION['user_role'])) { 
if(isset($_SESSION['user_role']) == 'admin') 
{ 
header("Location: ../admin"); 
} else if(isset($_SESSION['user_role']) == 'subscriber') 
{ 
header("Location: ../subscriber"); 
} 
} 
} else { 
header("Location: ../index.php "); 
} 
} 

>

関連する問題