Login Unique

Line -  
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.
Configuration: Windows Vista
Firefox 3.0.10
A voir également:
  • Login Unique
  • Coque unique - <a href="https://forums.commentcamarche.net/forum/consommation-internet-301">Forum Consommation & Internet</a>
  • Wifipass pierre et vacances login - <a href="https://forums.commentcamarche.net/forum/reseaux-sociaux-10">Forum Réseaux sociaux</a>
  • Kelma login - <a href="https://forums.commentcamarche.net/forum/reseaux-sociaux-10">Forum Réseaux sociaux</a>
  • On me demande mon login - <a href="https://forums.commentcamarche.net/forum/webmaster-24">Forum Webmastering</a>
  • Qu'est ce qu'un login ? - <a href="https://forums.commentcamarche.net/forum/reseaux-sociaux-10">Forum Réseaux sociaux</a>

12 réponses

HostOfSeraphim Messages postés 7340 Statut Contributeur 1 609
 
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.

0
mya1 Messages postés 352 Statut Membre 42
 
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
0
Line
 
Bonne idée je vais essayer merci ;)
0
mya1 Messages postés 352 Statut Membre 42
 
tiens moi au courant
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Line
 
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é" ???
0
mya1 Messages postés 352 Statut Membre 42
 
euuh aucune idée, mais si tu vx ya un astuce: avant le echo"login deja utilisé" tu ajoutes echo"<fontcolor=green>"!!
0
Line
 
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é!";
}
0
mya1 Messages postés 352 Statut Membre 42
 
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!!
0
Line
 
Oui mais quelle variable justement..
0
pyschopathe Messages postés 2053 Statut Membre 137
 
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.
0
Line
 
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...
0
pyschopathe Messages postés 2053 Statut Membre 137
 
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.
0
Line
 
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?
0
pyschopathe Messages postés 2053 Statut Membre 137
 
Tu peux recharger ta page de formulaire en ajoutant le champ... Donc tu places le code que je t'ai passé dans le script qui génère le formulaire et tu modifies un peu les conditions pour n'afficher un message que quand il y en a besoin.
0