Login Unique
Line
-
pyschopathe Messages postés 2053 Statut Membre -
pyschopathe Messages postés 2053 Statut Membre -
Bonjour,
Je réalise un formulaire sur mon site et je dois réaliser un test avant l'enregistrement du nouvel utilisateur.
Ce test doit vérifier que le nom de login donné par l'utilisateur n'existe pas déjà dans la base de données.
Je pense faire une requête qui va chercher dans ma base tous les login pour la comparer à celui donné par l'utilisateur mais je ne sais pas trop comment réaliser cette comparaison.
Si vous avez une idée.
Merci d'avance.
Je réalise un formulaire sur mon site et je dois réaliser un test avant l'enregistrement du nouvel utilisateur.
Ce test doit vérifier que le nom de login donné par l'utilisateur n'existe pas déjà dans la base de données.
Je pense faire une requête qui va chercher dans ma base tous les login pour la comparer à celui donné par l'utilisateur mais je ne sais pas trop comment réaliser cette comparaison.
Si vous avez une idée.
Merci d'avance.
Configuration: Windows Vista Firefox 3.0.10
12 réponses
-
Tu fais une requête qui sélectionne les utilisateurs qui ont un login identique à celui que la personne veut enregistrer.
Si tu as un enregistrement en retour, c'est que c'est déjà pris. Si tu n'as aucun enregistrement en retour, c'est que tu peux l'insérer.
-
if(mysql_num_rows($result)!= 0)
{
while($row = mysql_fetch_array($result))
{
if($row["login"] == $_POST["txtlogin"])
{
echo "Le login est déjà utilisé";
break;
}
}
}
else
{
echo "Le login est accepté!";
cordialement -
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Est-il possible d'afficher à côté du champs Login un champ qui afficherai (comme sur de nombreux sites) en vert "Login disponible" ou en rouge "Login déjà utilisé" ???
-
euuh aucune idée, mais si tu vx ya un astuce: avant le echo"login deja utilisé" tu ajoutes echo"<fontcolor=green>"!!
-
Pour l'instant j'ai çà et ça ne marche pas : message d'erreur -> Parse error: parse error, unexpected T_VARIABLE in C:\Program Files\... on line 40( ligne 40 : $resultLogin = mysql_query($sqlLogin);)
//verification disponibilité du login
$sqlLogin="SELECT Login FROM utilisateurs WHERE Login='$Login'"
$resultLogin = mysql_query($sqlLogin);
If(mysql_num_rows($resultLogin)!= 0)
{
while($row = mysql_fetch_array($resultLogin))
{
if($row["Login"] == $_POST["Login"])
{
echo "Le login est déjà utilisé";
break;
}
}
}
else
{
echo "Le login est accepté!";
} -
unexpected T_VARIABLE in C:\Program Files\.......
apparement tu as utilisé une variable nommée T_VARIABLE non declarée ou truc de ce genre!! -
-
Oki, pour vérifier la disponibilité d'un pseudo, tu vas effectivement devoir vérifier dans ta BD si le pseudo existe. Tu vas faire un script dispo_pseudo.php :
if ( isset( $_GET['login'] ) ) { $login = mysql_real_escape_string( $GET['login'] ) ; } else if ( isset( $_POST['login'] ) ) { $login = mysql_real_escape_string( $GET['login'] ) ; } else exit( -1 ); // erreur pas de pseudo fourni ! $request = "SELECT login FROM users WHERE login='$login'"; $result = mysql_query( $request ); if ( $result ) { if ( mysql_num_rows( $result ) !== 0 ) { return 1; // pseudo non disponible } else return 0; //pseudo disponible } else exit( -2 ); // erreur problème avec la BD !
Ensuite pour avoir un affichage correspondant à la validité du pseudo sans avoir à recharger la page, il faut utiliser AJAX : lorsque l'utilisateur sort du champ de saisie, tu lances une requête asynchrone vers le serveur pour récupérer le script dispo_pseudo.php en lui passant en paramètre la valeur courante de la balise input.
Renseigne-toi sur AJAX si tu ne sais pas comment faire, tu as plein de bons tutos sur le net. -
Merci bcp mais vu que je ne connais pas du tout AJAX et que je n'ai pas beaucoup de tps je ne sais pas si je vais réussir avec cette méthode...
-
Tu n'as pas vraiment besoin d'AJAX : tu peux utiliser le code pour vérifier côté serveur (après la soumission du formulaire) et renvoyer un message en couleur en fonction de la disponibilité ou non...
function verifPseudo( $login ) { $login = mysql_real_escape_string( $login ) ; $request = "SELECT login FROM users WHERE login='$login'"; $result = mysql_query( $request ); if ( $result ) { if ( mysql_num_rows( $result ) !== 0 ) { return 1; // pseudo non disponible } else return 0; //pseudo disponible } else return -1; // erreur problème avec la BD ! } if ( isset( $_GET['login'] ) ) { $existe = verifPseudo( $_GET['login'] ); } else if ( isset( $_POST['login'] ) ) { $existe = verifPseudo( $_POST['login'] ); } else exit( -1 ); // erreur pas de pseudo fourni ! if ( $existe === 0 ) { // Le pseudo est libre echo '<p class="ok">Le pseudo est disponible :-)</p>'; } else if ( $existe === 1 ) { // Le pseudo est déjà utilisé echo '<p class="ko">Ce pseudo est déjà utilisé :-(</p>'; } else { // Erreur echo '<p class="erreur">Une erreur a été rencontrée lors de la vérification de la disponibilité du pseudo X-(</p>'; }Ensuite dans ton CSS, tu définis le style des éléments de class ok, ko et erreur.
-
-
Merci beaucoup encore !! ca fonctionne!
Mais est-il possible d'afficher ce message juste à côté du login dans un champ au lieu de l'afficher dans une autre page?