Sie fügen Ihrem Benutzernamen manuell Leerzeichen hinzu, damit es so aussieht, als ob er nicht existiert:
$query = "SELECT * from User WHERE username=' ".$username." ' ";
^ ^
Sollte lauten:
$query = "SELECT * from User WHERE username='".$username."' ";
Die Verwendung einer vorbereiteten Anweisung würde dieses Problem und potenzielle SQL-Injection-Probleme auf einen Schlag vermeiden:
$query = "SELECT * from User WHERE username=?";
Achten Sie auch darauf, Ihre Tabellen- und Spaltennamen einheitlich zu verwenden:User
ist nicht unbedingt dasselbe wie user
.
Auch beachten dass Sie Klartext-Passwörter niemals in einer Datenbank speichern sollten, sollten Sie salzen und hashen .