Dlaczego tak
Rolę trzeba odczytać z sesji przechowywanej na serwerze, której użytkownik nie może sam zmienić, a po wysłaniu przekierowania zakończyć skrypt instrukcją exit. Wersja bez exit wysyła nagłówek Location, ale wykonuje dalszą część pliku, więc treść panelu trafia do odpowiedzi i można ją odczytać, ignorując przekierowanie. Parametr GET i ciasteczko pochodzą od klienta, więc wystarczy dopisać rola=admin, aby ominąć zabezpieczenie.