IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Formulaire d'inscription : vérifier si loggin existant


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Formulaire d'inscription : vérifier si loggin existant
    Bonjour,

    Voilà, j'ai créé un formulaire d'inscription me premettant d'ajouter des utilisateurs à ma BDD avec toutes les restrictions qui s'imposent.
    Quand on clique sur "Valider" si une information est manquante ou erronée, celà me l'indique par une MsgBox et ne lance pas l'enregistrement.
    Mon seul problème, c'est que je ne sais pas comment faire pour que l'enregistrement ne s'effectue pas si le login choisi existe déjà...
    Je voudrais que cela me l'indique également par un message d'alerte, mais je n'y arrive pas.
    Voila ce que j'ai déjà fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <form name="forminscription" action="index.php?p=validinscription" method="post" onSubmit="return formInscription(this)">
     
    <div class="bloctitre">INSCRIPTION</div>
    <div class="bloc"><br><br>
    <table class="texte_interne" border="0" align="center">
    <tr>
        <td><label for="login">Login*</label></td>
        <td><input type="text" id="login" name="login" value="<?php echo $login; ?>"/> </td>
    </tr>
    <tr>
        <td><label for="mdp">Mot de Passe*</label></td>
        <td><input type="password" id="mdp" name="mdp" value="<?php echo $mdp; ?>"/> </td>
    </tr>
    <tr>
        <td><label for="mdp2">Ressaisir le Mot de Passe*</label></td>
        <td><input type="password" id="mdp2" name="mdp2" value="<?php echo $mdp2; ?>"/> </td>
    </tr>
    <tr>
        <td><label for="mail">E-Mail*</label></td>
        <td><input type="text" id="mail" name="mail" value="<?php echo $mail; ?>"/></td>
    </tr>
    <tr>
        <td><label for="nom">Nom*</label></td>
        <td><input type="text" id="nom" name="nom" value="<?php echo $nom; ?>"/></td>
    </tr>
    <tr>
        <td><label for="prenom">Pr&eacute;nom*</label></td>
        <td><input type="text" id="prenom" name="prenom" value="<?php echo $prenom; ?>"/></td>
    </tr>
    <tr>
        <td><label for="adresse">Adresse*</label></td>
        <td><input type="text" id="adresse" name="adresse" value="<?php echo $adresse; ?>"/></td>
    </tr>
    <tr>
        <td><label for="cp">Code Postal*</label></td>
        <td><input type="text" id="cp" name="cp" value="<?php echo $cp; ?>"/></td>
    </tr>
    <tr>
        <td><label for="ville">Ville*</label></td>
        <td><input type="text" id="ville" name="ville" value="<?php echo $ville; ?>"/></td>
    </tr>
    <tr>
        <td><label for="tel">T&eacute;l&eacute;phone</label></td>
        <td><input type="text" id="tel" name="tel" value="<?php echo $tel; ?>"/></td>
    </tr>
    <tr>
        <td colspan="2"><div align="center"><FONT SIZE=1><i><br>* Ces renseignements sont obligatoires</i></font></div></td>
        <td></td>
    </tr>
    </table>
    <br><br>
     
    <div align="center"><input type="submit" value="Envoyer"></div>
    </div>
    </form>
     
    <script type="text/javascript">
        function formInscription(form){
            var probleme = false;
            var login = form.elements["login"].value;
            var prenom = form.elements["prenom"].value;
            var nom = form.elements["nom"].value;
            var mdp = form.elements["mdp"].value;
            var mdp2 = form.elements["mdp2"].value;
            var mail = form.elements["mail"].value;
            var adresse = form.elements["adresse"].value;
            var cp = form.elements["cp"].value;
            var ville = form.elements["ville"].value;
     
            if (login == "" || nom == "" || prenom == "" || mdp == "" || mdp2 == "" || mail == "" || adresse == "" || cp == "" || ville == "")
            {
                probleme = true;
            }
     
            if (probleme)
            {
                alert('Vous devez saisir tout les champs demandés !');
                return false;
            }
            else
            {
                if(mdp != mdp2)
                {
                    alert('Les mots de passe saisis sont défrérents !');
                    return false;
                }            
                return true;
            }
        }
    </script>
    Merci à vous de m'aider

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Le problème est que tu dois faire une vérification dans ta base de données, donc côté serveur, ce qui soit :

    1 - t'oblige à faire le submit de ton formulaire et de vérifier le login avec une petire requête SQL, s'il existe déjà tu réaffiches le formulaire avec un petit message comme quoi le login existe déjà.

    2 - t'oblige à te tourner vers la technologie AJAX qui te permettra de faire une requête côté serveur sans submit de ton formulaire.
    Un exemple de cette technologie ici. A toi de le modifié afin d'obtenir ce que tu désire.

    Bon courage

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci Jumano pour la rapidité de réponse.
    Pour ce qui est de la solution 1, je ne risque pas de perdre les informations déjà saisies si je l'exécute ?
    Et pour ce qui est d'Ajax, j'ai essayé de palier à mon problème avec. Mais cela ne m'a servit qu'à m'indiquer que le login existait déjà, sans pour autant me bloquer l'ajout.
    Je reprendrai ça à tête reposée demain

  4. #4
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Pour ne pas perdre les différentes valeurs de tes champs il faut dans la value de ton champs indiquer la variable transmise comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="nom" type="text" id="nom" value="<?php echo $_POST['nom'] ; ?>" />
    Pour la technologie AJAX pourquoi ne pas faire un champs caché qui prends la valeur "OK" si le login n'existe pas et ensuite tu fais le test sur le submit du formulaire dans ta fonction javascript sur la valeur de ce champs et tu fais l'alert en fonction.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 107
    Points : 66
    Points
    66
    Par défaut
    yo mec !
    va voir du coté de la classe HMLHTTPRequest...
    mais je persite à dire qu'il serait plus judicieu faire t verif avec le php (beaucoup plus simple
    a toi de voir mec!

    et au fait t pas un mec , mec !

  6. #6
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 318
    Points
    318
    Par défaut
    Bonjour,
    je travail actuellement sur un projet et j'ai fais la même chose en ajax voici la solution, tu essayera de l'adapter à tes besoins, mais je crois que tu peux l'utiliser comme ça.
    Fonction Ajax envoyant une requête à une page php qui vérifie l'existence d'une information:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    function isExist(table,attribut,form,champ,div_error,msg_error)
    	{
    		var url = 'Modules/isExist.php';// La page qui va faire les traitements côté serveur
    		var valeur=$E(form,champ).value;// La valeur a contrôler 
    		var param='table='+table+'&attribut='+attribut+'&valeur='+valeur;// Les paramètres qui seront envoyés au serveur
    		var xhr = getXMLHTTP();
     
    		xhr.onreadystatechange = function handleHttpResponse() 
    		{
    		if(xhr.readyState == 4 ) 
    			{
     
    			var response = xhr.responseText;
     
    		if(response=='oui')
    			{
     
    			//On donne un motif d'erreur comme arrière plan au champ
    			$(div_error).innerHTML='';
    		$E(form,champ).style.background='url(images/bg_input_erreur2.gif)';
    		//On donne une bordure royge au champ erroné
    		$E(form,champ).style.border='1px solid red';		
    		// Et on affiche une image d'erreur dans le div spécifié en haut avec le message d'erreur
    		$(div_error).innerHTML ='<img src="images/exclamation.gif" alt="'+msg_error+'">'+msg_error;	
    		$(div_error).style.color ="red";
     
    		return "existe";
    			}
    		else
    			{
    			$(div_error).innerHTML='';
    		$E(form,champ).style.background='';
    		$E(form,champ).style.border='';
    		$(div_error).innerHTML ='<img src="images/valide.gif" alt="Champ valide">';	
    		$(div_error).style.color ="green";	
     
    		return true;		
    			}
     
    		}
    	else
    		{
     
    		document.getElementById(div_error).innerHTML = 'Traitement en cours';		
    		return false;
    		}
     
    		}
     
    		xhr.open("POST",url, true);
    		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    		xhr.send(param);				
     
    	}
    Et voici le code de la page php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    mysql_connect("serveur","root","");
    mysql_select_db("db") or die(mysql_error);
    $sql='SELECT '.$_POST['attribut'].' FROM '.$_POST['table'].' WHERE '.$_POST['attribut'].'="'.$_POST['valeur'].'"';
     
    $result=mysql_query($sql);
    	if(mysql_num_rows($result)!=0)
    		{
    		echo 'oui';
    		}
    	else
    		{
    		echo 'non';
    		}
    ?>
    Et voici comment je l'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="text" id="login" name="login" maxlength="12" size="30" value="" class="inputbox" maxlength="25" onblur="VLogin()"/>
    <input type="hidden" name="erreur" id="erreur" value=""/><!-- Elle permet de connaitre si le Login est valide-->
    			<span id="login_erreur" class="erreur" style="width:220px;"></span>
    Et tu crée une variable global Elogin que tu test avant d'envoyer le formulaire, s'il y a une erreur tu n'envoi pas le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    function VerifForm()
     {
    if($E('form_inscription','erreur').value=='erreur')
    				{
    			var Elogin='erreur';
    				}
    			else
    				{
    			var Elogin='ok';
     
    				}
    var ch='Elogin='+Elogin+'\nEpass='+Epass+'\nEpass2='+Epass2+'\nEreponse='+Ereponse+'\nEquestion='+Equestion;
    		if( (Elogin=='ok') && (Epass=='ok') && (Epass2=='ok') && (Ereponse=='ok') && (Equestion=='ok'))
    			{
    			$('form_inscription').submit();
    			}
    		else
    			{
    			alert(ch);
    			}
    }
    Encore une chose il faut que tu met dans ta balise form onSubmit="VerifForm(); return false"
    Dites moi ce que vous en pensez?!!

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/04/2010, 20h56
  2. [MySQL] Quelqu'un pourrait il m'aider à vérifier mon formulaire d'inscription?
    Par Pepito2030 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/07/2006, 00h56
  3. Formulaire d'inscription
    Par ero-sennin dans le forum Langage
    Réponses: 3
    Dernier message: 29/01/2006, 19h23
  4. Creation d'un formulaire d'inscription
    Par whbh dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 21/01/2006, 14h04
  5. Formulaire d'inscription
    Par Gourouni dans le forum ASP
    Réponses: 6
    Dernier message: 02/12/2004, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo