Hallo Jörg,
Warum probierst Du nicht einfach:
if( isUserLoggedIn($mysqli) === false or $user_type === 'eintrager' ) {
if( isUserLoggedIn($mysqli) === false || $user_type == 'eintrager' ) {
Da sehe ich einen theoretischen Fehler. Wenn der Benutzer angemeldet ist, wieso sollte er dann zum login zurückkehren?
das sollte er ja auch nicht, also zuerst soll geprüft werden ob User eingeloggt ist, wenn nein, dann auf die login Seite. Wenn er eingeloggt hat, aber den falschen Status, dann ab auf die Index Seite.
Hab es jetzt mal so gemacht, scheint zu gehen:
if(isUserLoggedIn($mysqli) === FALSE) {
header('Location: login');
}
if ($user_type == 'administrator') {
header('Location: index');
}