le righe di codice sono solo queste?
te lo chiedo perché io ho spesso problemi quando utilizzo le sessioni per controllare se un utente è loggato, in pratica appena aggiungo session_start() non mi scarica + niente (soltanto i.e.) quindi ho risolto non controllando con le sessioni ma con una variabile passata in get derivata da un dato del database che l'utente non loggato non può indovinare

se usi le sessioni prova a togliere session_start e a provare
ciao