2016-04-24 6 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

Почему вы не добавляете другой 'if' условие для проверки' user_role' значение? – 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

я попытался сделать, если заявление в заявлении, если проверка, если учетные данные правильно. Я сделал это, если заявление:

<?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 "); 
} 
} 

>

Смежные вопросы