Stai aggiungendo manualmente spazi intorno al tuo nome utente in modo che sembri non esistere:
$query = "SELECT * from User WHERE username=' ".$username." ' ";
^ ^
Dovrebbe essere:
$query = "SELECT * from User WHERE username='".$username."' ";
L'uso di una dichiarazione preparata eviterebbe quel problema e potenziali problemi di iniezione di sql in una volta sola:
$query = "SELECT * from User WHERE username=?";
Assicurati inoltre di utilizzare in modo coerente i nomi delle tabelle e delle colonne:User
non è necessariamente lo stesso di user
.
Nota anche che non dovresti mai memorizzare password in testo normale in un database, dovresti sale e sminuzzali .