Мой случай переключения перенаправляет каждого пользователя на первый случай, что не так?
Я хочу, чтобы «Президент» перенаправил на admin.php
<?php require "header.php"; ?>
<?php
if ( ! isset($_SESSION['email']) ) {
$msg = urlencode('U dient ingelogd te zijn om op deze pagina te kunnen komen.');
header('location: login.php?msg=' . $msg);
die();
}
$role = $_SESSION['jobTitle'];
switch($role) {
case 'Finance' AND 'VP Finance':
header('location: finance.php');
break;
case 'VP Sales' AND 'Sales Manager (NA)' AND 'Sales Rep':
header('location: sales.php');
break;
case 'President':
header('location: admin.php');
break;
default:
session_destroy();
header('location: login.php');
}
?>
</div>
</body>
</html>
это моя база данных
http://i57.tinypic.com/2em21aw.png
Вы могли бы переписать
switch($role) {
case 'Finance':
case 'VP Finance':
header('location: finance.php');
break;
case 'VP Sales':
case 'Sales Manager (NA)':
case 'Sales Rep':
header('location: sales.php');
break;
case 'President':
header('location: admin.php');
break;
default:
session_destroy();
header('location: login.php');
}
Или вы можете написать что-то более сложное с выражением внутри case.
switch(true) {
case ($role == 'Finance' OR $role == 'VP Finance'):
header('location: finance.php');
break;
case ($role =='VP Sales' OR $role =='Sales Manager (NA)' OR $role =='Sales Rep'):
header('location: sales.php');
break;
case $role == 'President':
header('location: admin.php');
break;
default:
session_destroy();
header('location: login.php');
}
И операторы AND нельзя использовать в случаях переключения … Попробуйте выполнить следующее:
switch($role) {
case 'Finance':
case 'VP Finance':
header('location: finance.php');
break;
case 'VP Sales':
case 'Sales Manager (NA)':
case 'Sales Rep':
header('location: sales.php');
break;
case 'President':
header('location: admin.php');
break;
default:
session_destroy();
header('location: login.php');
}