Vous ajoutez manuellement des espaces autour de votre nom d'utilisateur pour donner l'impression qu'il n'existe pas :
$query = "SELECT * from User WHERE username=' ".$username." ' ";
^ ^
Devrait être :
$query = "SELECT * from User WHERE username='".$username."' ";
L'utilisation d'une instruction préparée éviterait ce problème et les problèmes potentiels d'injection SQL en une seule fois :
$query = "SELECT * from User WHERE username=?";
Assurez-vous également d'utiliser systématiquement les noms de vos tables et colonnes :User
n'est pas nécessairement le même que user
.
Remarque également que vous ne devez jamais stocker de mots de passe en texte brut dans une base de données, vous devez les saler et les hacher .