uhm... aspe tu hai fatto un "if" come ti ho suggerito io ma dove ho scritto "//Visualizza la pagina" hai inserito il codice html per visualizzare la pagina dopo il login, giusto?
Se è così prova a controllare riga per riga (o se hai il log del server - Apache di solito lo fa) dove si impunta il compilatore: di solito quando fallisce qualche funzione o c'è un ciclo infinito o quant'altro tende a fermarsi e a mandare la pagina in timeout.

Se può esserti d'aiuto, io utilizzo una piccola funzione che scrive su file tutto quello che viene fatto (la richiamo dopo i passaggi più importanti dello script):
Codice PHP:
 function debug($line$script$message)

{

  
$fp fopen("debug.log""a"); // Just for writing (appending) - no reading required

  
$content "($script) Linea: " $line " -- " $message "\n";

  
fwrite($fp$content);

  
fclose($fp);


Dopo le operazioni più grandi scrivo tipo
Codice PHP:
debug(__LINE____FILE__"Ho fatto questa cosa"); 
Vedi se ti può essere d'aiuto

Ciaooo