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
Libérer: 2024-12-20 08:16:16
original
714 Les gens l'ont consulté

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

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

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

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

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

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!

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