2016-12-01 9 views
0

私は、管理者と顧客を格納する役割フィールドを持つユーザーテーブルを持っています。管理者役割を持つユーザーをadminにリダイレクトし、もう1人がindex.phpにリダイレクトするようにします。ログイン - 別のユーザーの役割

私は登録フォームからパスワードを暗号化し、password_verify関数を使用して両方のパスワードが一致するとユーザーにアクセスできるので、これを行う方法はわかりません。

function login_user() { 


if(isset($_POST['btnlogin'])) { 

    global $connection; 

    $email = $_POST['email']; 
    $password = $_POST['password']; 

    $login_query = "SELECT * from users where email = '{$email}'"; 

    $confirm = mysqli_query($connection, $login_query); 




    while($row = mysqli_fetch_assoc($confirm)) { 

     $db_pass = $row['password']; 
     $first_name = $row['first_name']; 
     $last_name = $row['last_name']; 
     $contact_num = $row['mobile']; 
     $email = $row['email']; 
     $postcode = $row['postcode']; 
     $role = $row['role']; 

     $_SESSION['firstname'] = $first_name; 
     $_SESSION['lastname'] = $last_name; 
     $_SESSION['mob'] = $contact_num; 
     $_SESSION['email'] = $email; 
     $_SESSION['postcode'] = $postcode; 


    } 


    if(password_verify($password, $db_pass)) { 

        redirect("index.php"); 

      } 
     } 



} 

答えて

1

場合、条件シンプルを使用します。

if (password_verify($password, $db_pass)) { 
    if ($role == 'admin') { // or how do you store role value 
     redirect("admin.php"); 
    } else { 
     redirect("index.php"); 
    }   
} 

は、あなたもあなたの$_SESSIONroleを追加する必要があり、さらに行きます。 何かのように:

// code goes here 
$_SESSION['postcode'] = $postcode; 
$_SESSION['is_admin'] = $role == 'admin'; 

あなたは直接admin.phpにアクセスし、誰かが管理であるかどうかをチェックするようにこれを実行する必要があります。

+0

私はこのサイトで前にこれを行いました。データベースには私は、ロール=管理者とのスティーブンと呼ばれるユーザーがあります。このステートメントは、最初の条件をスキップし、次の条件index.phpに行く – steven

+0

これは__should__仕事。データベース内の値を再度確認してください。特に 'role'フィールドの値を確認してください。必要に応じて、あなたの質問に追加のコードを投稿してください。 –

+0

私は自分のデータベースをチェックして、ユーザーStevenの役割はAdminと同じです。管理者に行くのではなく、index.phpに行きます...だから変です。 – steven

関連する問題