Beim Versuch, die Eindeutigkeit von Benutzernamen in einer Datenbank mithilfe des Validierungsframeworks von jQuery zu überprüfen, können Unstimmigkeiten auftreten. Wenn die Remote-Methode versucht festzustellen, ob ein bestimmter Benutzername bereits vorhanden ist, kann sie unabhängig vom tatsächlichen Status stets melden, dass dies der Fall ist.
Bei der Überprüfung des bereitgestellten Codes wird Folgendes angezeigt Es ist offensichtlich, dass das Problem auf das PHP-Skript zurückzuführen ist, das für die Prüfung mit der Datenbank verantwortlich ist. Hier ist eine Analyse des überarbeiteten PHP-Skripts:
require_once "./source/includes/data.php"; header('Content-type: application/json'); $username = mysql_real_escape_string($_REQUEST['username']); $query = mysql_query("SELECT * FROM mmh_user_info WHERE username ='$username'"); $result = mysql_num_rows($query); if ($result == 0){ $valid = 'true'; } else{ $valid = 'false'; } echo $valid;
Die Überarbeitungen konzentrieren sich hauptsächlich auf die Behebung der fehlerhaften SQL-Abfrage. Die ursprüngliche Abfrage, die im ursprünglichen Skript verwendet wurde, versuchte, nach einem Benutzernamen zu suchen, der nicht sicher maskiert wurde, wodurch er anfällig für Injektionsangriffe wurde. Das überarbeitete Skript verwendet mysql_real_escape_string, um den Benutzernamen ordnungsgemäß zu maskieren, bevor die Datenbank abgefragt wird.
Darüber hinaus verwendet die überarbeitete Abfragestruktur mysql_num_rows, um die Ergebnisse der SQL-Abfrage zu zählen, sodass genau ermittelt werden kann, ob der Benutzername bereits in der Datenbank vorhanden ist Datenbank. Wenn das Ergebnis 0 ist, gilt der Benutzername als eindeutig und die Variable $valid wird auf true gesetzt. Andernfalls wird es auf „false“ gesetzt.
Durch die Verwendung dieses überarbeiteten PHP-Skripts kann die Remote-Methode in der Validierung von jQuery korrekt ermitteln, ob ein Benutzername bereits in der Datenbank vorhanden ist, wodurch sichergestellt wird, dass bei der Benutzerregistrierung eindeutige Benutzernamen erzwungen werden.
Das obige ist der detaillierte Inhalt vonWarum erkennt meine jQuery Validate Remote-Methode keine eindeutigen Benutzernamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!