1 le sessioni usano cookies
2 per gestire i cookies devi per forza di cose ricaricaricare la pagine o usare ajax
3 reindirizzare a script ti da maggiore controllo sul codice ed evita che un tasto F5 faccia casini e invii troppe request

Inoltre il reinidirizzamento da te proposto non e' un vero e proprio reindirizzamento, e' una stampa di dati in base al loro stato in un determinato elemento della pagina html.

Puoi gestire tutta la cosa in loco senza redirects ma DEVI usare ajax e devi avere uno script per gestire i login alle spalle.

Io consiglio sempre di tenere separate le entita'. Php da una parte e html dall'altra.
Nelle pagine dinamiche quinidi prima generi l'html con php poi lo stampi

se devi debuggare pagina da 200 righe mescolate di php e html e js che fai ?
Ti spari nelle balle a me e' capitato di dover sistemare casotti del genere => ho rifatto da 0 ci ho messo meno quindi separa sempre.

Ad esempio (pagina web dinamica e generata con php) :
Codice PHP:
<?

// definizioini
// inclusioni 

// variabili o strutture dati

// interrogazioni db o cointrolli

// popola la variabili 

// controlla e converti dove necessario

// genera html
$titolo "TITOLO PAGINA" ;
$metatag generaMetatag();
$menu generaMenu() ;
$contenutoPagina generaContenutoPagina$dati $opzioni ) ;

?>
<html>
<head>
<?=$titolo?>
<?=$metatag?>

</head>

<body>

<?=$menu?>
<hr />
<?=$contenutoPagina?>

</body></html>

Come vedi la pagina ha una pulizia perfetta, e se devi modificare metti mano alle funzioni (che puoi riutilizzare ovunque ti servano) e non impasti tutto.