Maison > base de données > tutoriel mysql > Pourquoi ma méthode de validation à distance jQuery échoue-t-elle toujours lors de la vérification de la disponibilité du nom d'utilisateur ?

Pourquoi ma méthode de validation à distance jQuery échoue-t-elle toujours lors de la vérification de la disponibilité du nom d'utilisateur ?

Barbara Streisand
Libérer: 2024-12-24 01:08:11
original
637 Les gens l'ont consulté

Why Does My jQuery Validate Remote Method Always Fail When Checking Username Availability?

jQuery Validate : Utilisation de la méthode distante pour vérifier la disponibilité du nom d'utilisateur

Dans cette question, un utilisateur tente de valider l'existence d'un nom d'utilisateur à l'aide de la méthode distante de jQuery.validate. Cependant, ils rencontrent un problème où la validation échoue toujours, même lorsque le nom d'utilisateur n'est pas pris.

Code d'origine

jQuery:

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

check-username.php:

<?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);
?>
Copier après la connexion

Problème

Le code d'origine utilisé par la télécommande méthode incorrecte, car elle renvoyait toujours vrai, indiquant que le nom d'utilisateur a été pris.

Solution

L'utilisateur résolu le problème en mettant à jour leur code PHP comme suit :

<?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;
?>
Copier après la connexion

Explication

Le code PHP mis à jour :

  • Utilise la variable $request pour récupérer le nom d'utilisateur à partir de la requête.
  • Interroge la base de données pour compter le nombre d'enregistrements avec le nom d'utilisateur spécifié.
  • Définit $valid à 'true' si aucun enregistrement n'est trouvé, indiquant que le nom d'utilisateur est disponible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal