Maison >base de données >tutoriel mysql >Pourquoi ma méthode jQuery Validate Remote ne détecte-t-elle pas les noms d'utilisateur uniques ?

Pourquoi ma méthode jQuery Validate Remote ne détecte-t-elle pas les noms d'utilisateur uniques ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-13 07:08:12799parcourir

Why Isn't My jQuery Validate Remote Method Detecting Unique Usernames?

jQuery valide la méthode à distance ne détectant pas les noms d'utilisateur existants

Lorsque vous tentez de vérifier le caractère unique des noms d'utilisateur dans une base de données à l'aide du cadre de validation de jQuery, des divergences peuvent survenir. La méthode distante, lorsqu'elle tente de déterminer si un nom d'utilisateur donné existe déjà, peut systématiquement signaler qu'il existe, quel que soit l'état réel.

Mauvaise configuration et résolution

En inspectant le code fourni, il devient Il est évident que le problème provient du script PHP chargé de vérifier la base de données. Voici une analyse du script PHP révisé :

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;

Les révisions se concentrent principalement sur la résolution de la requête SQL défectueuse. La requête originale utilisée dans le script initial tentait de rechercher un nom d'utilisateur qui n'avait pas été échappé de manière sécurisée, le rendant vulnérable aux attaques par injection. Le script révisé utilise mysql_real_escape_string pour échapper correctement le nom d'utilisateur avant d'interroger la base de données.

De plus, la structure de requête remaniée utilise mysql_num_rows pour compter les résultats de la requête SQL, lui permettant ainsi de déterminer avec précision si le nom d'utilisateur existe déjà dans le base de données. Si le résultat est 0, le nom d'utilisateur est considéré comme unique et la variable $valid est définie sur true. Sinon, il est défini sur false.

En employant ce script PHP révisé, la méthode distante de validation de jQuery peut déterminer correctement si un nom d'utilisateur existe déjà dans la base de données, garantissant ainsi que des noms d'utilisateur uniques sont appliqués lors de l'enregistrement de l'utilisateur.

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!

Déclaration:
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