Io non sono un espertissimo di questo forum ma ti dico alcune cose che secondo le mie conoscenze farei:
1) non mettere la password (seppur correttamente criptata) in sessione;
2) la funzione login() io gli darei dei return e non degli echo così risulta essere più facile da gestire
2) nella funzione login se il login è eseguito con successo inserisci in una variabile di sessione l'id corrispondente all'utente che può tornarti utile per query che farai in altri script
3) il riconoscimento dell'utente mettilo in una funzione e non occorre che esegua la query... $_SESSION['nickname_controllato'] esisterà solo se l'utente si è loggato... pertato puoi fare
Codice PHP:
function utente_loggato()
   {
   if(isset(
$_SESSION['nickname_controllato']))
      {
      return 
TRUE;
      }
   else
      {
      return 
FALSE;
      }
   } 
poi sulla sicurezza entrano in gioco anche altri fattori
sessio_save_path(), session_regenerate_id(), utilizzo dei token (ovvero il codice random che hai correttamente messo in sessione)...