e se tu provassi a distruggerla sempre quando non torna il risultato?

Codice PHP:
if (!$result) {  echo ("Username inesistente" mysql_error ()); session_destroy(); } 
probabilmente nelle prove sei incappato in questa situazione e il sistema ti vedeva sempre loggato...

inoltre per la sessione verifica sempre che non ci siano eventuali spazi bianchi o altro tra l'ionizo dello script e il tag <?php


infine se devi fare debug ti consiglio di settare la visualizzazione degli errori e mettere magari a inizio script (nol config, nell' init , bootstrap o altro questo

Codice PHP:
ini_set('error_reporting',E_ALL);
ini_set('display_errors',1); 
vedrai eventuali NOTICE e WARNING che altrimenti l'eventuale configurazione di default non ti fà vedere