Heim > Backend-Entwicklung > PHP-Tutorial > Warum zeigt meine jQuery-Validierungs-Remote-Methode den Fehler bei der Verfügbarkeit des falschen Benutzernamens an?

Warum zeigt meine jQuery-Validierungs-Remote-Methode den Fehler bei der Verfügbarkeit des falschen Benutzernamens an?

Linda Hamilton
Freigeben: 2024-12-23 15:10:18
Original
238 Leute haben es durchsucht

Why Does My jQuery Validate Remote Method Show the Wrong Username Availability Error?

jQuery Validate Remote-Methode: Fehlerbehebung bei der Überprüfung des Benutzernamens

Bei Verwendung der Remote-Methode von jQuery Validate zum Überprüfen, ob ein Benutzername in der Datenbank vorhanden ist, treten bestimmte Szenarien auf kann zu falschen Fehlermeldungen führen. In diesem Artikel wird ein häufiges Problem behoben, bei dem die Fehlermeldung „Dieser Benutzername ist bereits vergeben“ angezeigt wird, obwohl der Benutzername nicht vorhanden ist.

Grundlegendes zur Remote-Methode

Die Remote-Methode ermöglicht Ihnen, ein Feld anhand von Daten zu validieren, die von einem serverseitigen Skript abgerufen wurden. Es werden zwei Parameter benötigt:

  • URL: Die URL des Skripts, das die Validierung durchführt
  • Typ: Die HTTP-Anfragemethode (normalerweise GET oder POST)

Beispielimplementierung

Im bereitgestellten Code validiert das folgende jQuery-Skript die Feld „Benutzername“:

$("#signupForm").validate({
    rules: {
        username: {
            required: true,
            minlength: 3,
            remote: "check-username.php"
        }
    },
    messages: {
        username: {
            remote: "This username is already taken! Try another."
        }
    }
});
Nach dem Login kopieren

Das Skript check-username.php ist dafür verantwortlich, den Benutzernamen aus der POST-Anfrage abzurufen und zu prüfen, ob er in der Datenbank vorhanden ist:

<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');

$name = mysql_real_escape_string($_POST['username']);

$check_for_username = mysql_query("SELECT username FROM mmh_user_info WHERE username='$name'");

if (mysql_num_rows($check_for_username) > 0) {
    $output = true;
} else {
    $output = false;
}
echo json_encode($output);
?>
Nach dem Login kopieren

Beheben des Problems

Das ursprüngliche PHP-Skript gab „true“ zurück, um anzuzeigen, dass der Benutzername existiert, gab aber auch das Ergebnis wieder, was zur Ursache führte jQuery Validate zeigt eine falsche Fehlermeldung an.

Das korrigierte PHP-Skript sieht wie folgt aus:

<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');
$request = $_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;
?>
Nach dem Login kopieren

Indem jQuery Validate im PHP-Skript nur den booleschen Wert „true“ oder „false“ zurückgibt, kann dies jetzt geschehen Stellen Sie korrekt fest, ob der Benutzername existiert.

Das obige ist der detaillierte Inhalt vonWarum zeigt meine jQuery-Validierungs-Remote-Methode den Fehler bei der Verfügbarkeit des falschen Benutzernamens an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage