Login Unique
Fermé
Line
-
3 juin 2009 à 12:41
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 3 juin 2009 à 19:42
pyschopathe Messages postés 1974 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 3 juin 2009 à 19:42
12 réponses
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
3 juin 2009 à 12:44
3 juin 2009 à 12:44
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.
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.
mya1
Messages postés
334
Date d'inscription
samedi 5 juillet 2008
Statut
Membre
Dernière intervention
28 janvier 2013
42
3 juin 2009 à 12:46
3 juin 2009 à 12:46
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
{
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
mya1
Messages postés
334
Date d'inscription
samedi 5 juillet 2008
Statut
Membre
Dernière intervention
28 janvier 2013
42
3 juin 2009 à 12:48
3 juin 2009 à 12:48
tiens moi au courant
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é" ???
mya1
Messages postés
334
Date d'inscription
samedi 5 juillet 2008
Statut
Membre
Dernière intervention
28 janvier 2013
42
3 juin 2009 à 12:52
3 juin 2009 à 12:52
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é!";
}
//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é!";
}
mya1
Messages postés
334
Date d'inscription
samedi 5 juillet 2008
Statut
Membre
Dernière intervention
28 janvier 2013
42
3 juin 2009 à 13:12
3 juin 2009 à 13:12
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!!
apparement tu as utilisé une variable nommée T_VARIABLE non declarée ou truc de ce genre!!
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
3 juin 2009 à 15:13
3 juin 2009 à 15:13
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 :
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.
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...
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
3 juin 2009 à 17:07
3 juin 2009 à 17:07
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?
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?
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
3 juin 2009 à 19:42
3 juin 2009 à 19:42
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.