Maison >développement back-end >tutoriel php >Comment utiliser la méthode distante de jQuery Validate pour vérifier la disponibilité du nom d'utilisateur ?

Comment utiliser la méthode distante de jQuery Validate pour vérifier la disponibilité du nom d'utilisateur ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-20 08:16:16710parcourir

How to Use jQuery Validate's Remote Method to Check for Username Availability?

Méthode jQuery Validate Remote pour vérifier la disponibilité du nom d'utilisateur

Avec jQuery Validate, vous pouvez valider si un nom d'utilisateur existe déjà dans votre base de données à l'aide de la télécommande méthode. Voici un exemple :

jQuery :

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

check-username.php:

<?php
header('Content-type: application/json');

$username = $_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;
?>

Quand un L'utilisateur entre son nom d'utilisateur, jQuery enverra une requête à check-username.php avec le nom d'utilisateur. Le script PHP vérifiera si le nom d'utilisateur existe dans la base de données. Si c'est le cas, il renverra false, indiquant que le nom d'utilisateur est pris. Sinon, il retournera vrai.

Cependant, dans le code fourni par l'utilisateur, une erreur se produit lorsque vous essayez de vérifier si le nom d'utilisateur existe. L'erreur provient de la ligne :

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

Au lieu d'utiliser mysql_query, vous devez utiliser une instruction préparée pour empêcher les attaques par injection SQL :

$stmt = $mysqli->prepare("SELECT username FROM mmh_user_info WHERE username=?");
$stmt->bind_param("s", $name);

Le script PHP corrigé ressemblerait à ceci :

execute()) {
    $stmt->store_result();
    if ($stmt->num_rows() > 0) {
        $output = true;
    } else {
        $output = false;
    }
} else {
    $output = false;
}

$stmt->close();
$mysqli->close();

echo json_encode($output);
?>

Ce script devrait maintenant vérifier avec précision si le nom d'utilisateur existe dans la base de données et renvoyer la réponse correcte à jQuery Validez.

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