Vérifier si le nom d'utilisateur existe dans la base de données avec l'AJAX
Donc, fondamentalement, je veux ajouter une fonctionnalité à mon formulaire d'inscription, qui je vais vérifier si ce nom d'utilisateur existe déjà dans la base de données.
J'ai quelques questions à propos de AJAX -
1) je veux créer une requête AJAX on_change fonction, donc quelque chose comme cela -
$('#username').change(function() {
$.ajax({
url: "validation.php"
});
});
Donc, si je comprends bien, je dois avoir toutes les validations en PHP à l'intérieur de la validation.php fichier correct? Est-il spécial de validation nécessaire ou peut-elle être juste une simple validation avec une instruction sql - SELECT * FROM 'users' WHERE 'username' = '. $_POST['username'];
2), de Sorte que j'ai compris je doit passer le POST valeurs via $.ajax trop, correct? Si oui, comment vais-je être en mesure d'y accéder via le validation.php fichier?
3) Après, je reçois les résultats dans validation.php fichier, comment puis-je passer en arrière (true ou false -- existe ou n'existe pas)? J'ai besoin de passer en arrière, et ensuite faire un si vérifier si c'est vrai - afficher une erreur que le nom d'utilisateur existe déjà, sinon, ne pas montrer quoi que ce soit?
Espoir, vous l'avez compris ce que je suis sur le point de créer. Je sais qu'il y a beaucoup de tutoriels sur internet, mais je n'aime pas à créer quelque chose via des tutoriels, puisque, si je créer par moi-même, il sera plus facile de comprendre la prochaine fois ;)!
EDIT: En plus, je suis la création de mon site web avec le framework CodeIgniter, alors comment aurais-je passer l'url de l'attribut en ajax, pour un CodeIgniter module?
Oui, je l'ai lu, mais j'ai un peu de ne pas comprendre le peu de pièces, qui sont décrites ci-dessus.
vous pouvez transmettre des informations en utilisant les données de propriété de $.ajax et redd cette info comme normat post ou get lire dans la page php print vrai faux.cette information peut être lu usind fait de la méthode de rappel de $.ajax
Je vais essayer toutes les solutions, et revenez demain pour accepter la réponse! Merci tout le monde!
OriginalL'auteur Vdas Dorls | 2012-03-18
Vous devez vous connecter pour publier un commentaire.
Avant de continuer,
SELECT * FROM 'users' WHERE 'username' = '. $_POST['username'];
est juste POSER une Injection SQL. Je vous suggère d'utiliser PHP Data objects - http://php.net/manual/en/book.pdo.php.Donc si j'ai bien compris je doit passer le POST valeurs via $.ajax trop, correct? Si oui, comment je vais être en mesure d'y accéder via validation.php fichier?
Parce que c'est une simple demande, je vous suggère d'utiliser du JQuery méthode
$.post()
. Voici un exemple de base de ce que vous essayez de faire.de jQuery méthode post prend 4 paramètres
$.post(url, data, callback, datatype)
. Dans l'exemple ci-dessus, nous publierons le nom d'utilisateur avec$('#username').val()
àvalidation.php
et s'attendre à unJSON
réponse. Lorsque la requête est terminée, la fonction de rappel sera exécuté avecdata
être la réponse de la demande. Parce que nous avons précisé que cette réponse seraJSON
, on peut y accéder comme un natif de l'objet en javascript. Maintenant, nous allons passer à validation.phpComme je l'ai dit ci-dessus, je vous suggère d'utiliser PDO pour votre pilote de base de données. Donc, dans cet exemple, je vais vous montrer une utilisation de base.
Maintenant pour résumer, notre script jQuery sera publier sur
validation.php
où il choisit un nom d'utilisateur de la base de données. Il sera de retour uneJSON
objet qui a une clé deexists
qui est un booléen indiquant si le nom d'utilisateur existe déjà comme une ligne dans votre base de données. Lorsque la demande est complète via jQuery, vous pouvez faire ce que vous avez besoin selon le résultat de la requête. J'espère que c'est une explication approfondie et vous mène à ce que vous espérez accomplir.OriginalL'auteur Austin Brunkhorst
À lire des tutoriels sur internet, vous pouvez apprendre beaucoup de choses. Je vous conseille de suivre les instructions sur la page suivante:
http://blog.webwizo.com/2011/05/04/simple-login-with-php-and-jquery-ajax/
Vous envoyer le nom d'utilisateur par courrier postal à l'spécifiée fichier php, qui recherche le nom d'utilisateur que vous avez fourni.
Veuillez utiliser la fonction mysql_real_escape_string sur la chaîne d'entrée, afin que les pirates ne seront pas en mesure d'utiliser une attaque par injection sql sur votre site web. Il fonctionne comme ceci:
Ensuite, vous pouvez vérifier la valeur de la réponse dans votre ajax jquery fonction. Si le site web renvoie la valeur "inuse", afficher un message d'erreur que le nom d'utilisateur est déjà utilisé. Si non, le nom d'utilisateur est disponible.
Mais comme je l'ai dit, veuillez consulter le tutoriel et la chose la plus importante:
Utiliser mysql_real_escape_string pour empêcher les attaques par injection sql
OriginalL'auteur Bhawk1990
Voici ce que j'ai fait sur un de mes site web: validation.php je compte le nombre de membre avec le nom d'utilisateur puis ici, c'est le script jquery:
D'accord! Merci, je vais donc essayer de faire quelque chose ;)! Peut-être que vous avez connaissances avec CodeIgniter, et vous le savez, comment pourrais-je passer l'url d'un module?
Amritpal Singh: je ne savais pas, désolé. Que dois-je utiliser à la place de cela?
Vdas Dorls: je ne sais pas Codelgniter, désolé.
fait
OriginalL'auteur romainberger
vous pouvez passer par les méthodes get ou post. dans validation.php vous avez juste à écrire
$somevar=$_POST['somevar'];
comme je viens de le dire, vous ne pouvez pas passer des variables par la méthode post ou get - pour effectuer cette tâche, vous doit nous OBTENIR.
j'espère que j'ai été utile 😉
UTILISER MYSQL_REAL_ESCAPE_STRING OU DE L'UTILISATION DES REQUÊTES PRÉPARÉES POUR EMPÊCHER L'INJECTION SQL
OriginalL'auteur Mindaugas Jakubauskas