A parte che dovresti usare mysqli_num_rows(), visto che tutta la connessione è mysqli, perché non funziona il controllo? Non cancella i cookie? Non setta la sessione? Va in errore?

Comunque, secondo me il tuo codice può essere notevolmente efficientato