Я бы переместил эти вызовы функций из оператора if и сохранил бы его где-нибудь еще ...
Одним из подходов может быть объявление различных уровней, которые вам нравятся в массиве: $levels = array('admin' => '/admin/url', 'special' => '/special/url', 'guest' => '/guest/url');
, и повторение черезперечислите или посмотрите, существует ли ключ ...
Другой способ - использовать переключатель ...
if (isset($_SESSION['login_level'])) {
switch ($_SESSION['login_level']) {
case 'admin':
header('Location: /admin/url');
break;
case 'special':
header('Location: /special/url');
break;
case 'guest':
header('Location: /guest/url');
break;
default:
do_login();
break;
}
} else {
do_login();
}
function do_login() {
// do something
}