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 :

Lors de l'inscription d'un client, vérifier si mail existe dans base de données


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Lors de l'inscription d'un client, vérifier si mail existe dans base de données
    Bonjour tout le monde,

    Pour mon site marchand qui vend des motos... je souhaite lors de l'inscription d'un client vérifier si le mail qu'il saisie existe ou pas dans la base car je souhaite accepter qu'une seule fois l'adresse mail.

    Tout d'abord, la page HTML :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form name="client" id="client" method="POST" action="Index.php?action=enregistrer_inscription" onsubmit="return valider()">
    	<div id="title">INSCRIPTION</div>
    	<table width="600">
    <tr>
    			<td>Mail</td>
    			<!-- 'type="text" permet le champ de saisit correspondant au mail du client lors de sa création -->
    			<td><input type="text" name="mail" onKeyUp="verifMail(this.value)" value="<?php if(isset($_POST['mail'])) echo($_POST['mail']); ?>" /></td>
    		</tr>
    </table>

    Ensuite la page javascript ou se situe la fonction 'verifMail()' :
    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
    function writediv(texte)
         {
         document.getElementById('mes').innerHTML = texte;
         }
     
    function verifMail(mail)
    {
        if(mail != '')
        {
            if(texte = file('contenu/verifmail.php?mail='+escape(mail)))
            {
    			if(texte == 1)
    				writediv('<span style="color:#cc0000"><b>'+mail+' :</b> ce mail est deja pris</span>');
    			else
    				writediv('<span style="color:#1A7917"><b>'+mail+' :</b> ce mail est libre</span>');
     
            }
        }
     
    }
     
    function file(fichier)
    {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
    }
    Le fichier PHP (contenu/verifmail.php) :
    Code php : 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
    <?
    /*
    CE SCRIPT EST UN EXEMPLE DE SCRIPT PHP
    POUR VERIFIER LA DISPONIBILITE D'UN PSEUDO
    DANS UNE TABLE SQL
    
    LE SCRIPT DOIT RETOURNER :
    1 : SI LE SPEUDO EST DEJA PRIS
    2 : SI LE PSEUDO EST LIBRE
    */
     
    // CONNECION SQL
    $host = "ad";
    $user = "user";
    $pass = "";
    $name = "base";
    $connexion = mysql_connect($host, $user, $pass) or die (mysql_error());
    $db = mysql_select_db($name, $connexion) or die(mysql_error());
     
    // VERIFICATION
    if($db)
    			{
    $result = mysql_query("SELECT Clt_mail FROM client WHERE Clt_mail='".$_GET["mail"]."'");
    if(mysql_num_rows($result)>=1)
    //echo($result);
           echo "1";
    else
            echo "2";
    }
    ?>

    Le problème :
    Mon problème c'est que lorsque je saisit une adresse mail quelle existe ou pas dans la base de données cela m'affiche que le mail est libre.
    Quelqu'un as-t'il une idée pour régler ce problème car je voit pas trop??

    Merci d'avance!!

  2. #2
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    Bonsoir,

    chez moi ça fonctionne mais avec les accolades dans la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $result = mysql_query("SELECT Clt_mail FROM client WHERE Clt_mail='".$_GET["mail"]."'");
    if(mysql_num_rows($result)>=1) {
    //echo($result);
           echo "1";
    } else {
            echo "2";
    }

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Bonjour tout le monde,

    Pour mon site marchand qui vend des motos... je souhaite lors de l'inscription d'un client vérifier si le mail qu'il saisie existe ou pas dans la base car je souhaite accepter qu'une seule fois l'adresse mail.

    Tout d'abord, la page HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form name="client" id="client" method="POST" action="Index.php?action=enregistrer_inscription" onsubmit="return valider()">
    	<div id="title">INSCRIPTION</div>
    	<table width="600">
    <tr>
    			<td>Mail</td>
    			<!-- 'type="text" permet le champ de saisit correspondant au mail du client lors de sa création -->
    			<td><input type="text" name="mail" onKeyUp="verifMail(this.value)" value="<?php if(isset($_POST['mail'])) echo($_POST['mail']); ?>" /></td>
    		</tr>
    </table>
    Ensuite la page javascript ou se situe la fonction 'verifMail()' :
    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
    function writediv(texte)
         {
         document.getElementById('mes').innerHTML = texte;
         }
     
    function verifMail(mail)
    {
        if(mail != '')
        {
            if(texte = file('contenu/verifmail.php?mail='+escape(mail)))
            {
    			if(texte == 1)
    				writediv('<span style="color:#cc0000"><b>'+mail+' :</b> ce mail est deja pris</span>');
    			else
    				writediv('<span style="color:#1A7917"><b>'+mail+' :</b> ce mail est libre</span>');
     
            }
        }
     
    }
     
    function file(fichier)
    {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
         xhr_object.open("GET", fichier, false);
         xhr_object.send(null);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
    }
    Le fichier PHP (contenu/verifmail.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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?
    /*
    CE SCRIPT EST UN EXEMPLE DE SCRIPT PHP
    POUR VERIFIER LA DISPONIBILITE D'UN PSEUDO
    DANS UNE TABLE SQL
     
    LE SCRIPT DOIT RETOURNER :
    1 : SI LE SPEUDO EST DEJA PRIS
    2 : SI LE PSEUDO EST LIBRE
    */
     
    // CONNECION SQL
    $host = "127.0.0.1";
    $user = "root";
    $pass = "";
    $name = "moto28_v2";
    $connexion = mysql_connect($host, $user, $pass) or die (mysql_error());
    $db = mysql_select_db($name, $connexion) or die(mysql_error());
     
    // VERIFICATION
    if($db)
    			{
    $result = mysql_query("SELECT Clt_mail FROM client WHERE Clt_mail='".$_GET["mail"]."'");
    if(mysql_num_rows($result)>=1)
    //echo($result);
           echo "1";
    else
            echo "2";
    }
    ?>
    Le problème :
    Mon problème c'est que lorsque je saisit une adresse mail quelle existe ou pas dans la base de données cela m'affiche que le mail est libre.
    Quelqu'un as-t'il une idée pour régler ce problème car je voit pas trop??

    Merci d'avance!!
    Hooo une magnifique SQL Injection de premier ordre.
    Rien qu'avec le code que tu as mis là, je peux te droper ta DB en un rien de temps

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Réponse à arthuro45 et Gsnalf
    Réponse à Gsnalf : Merci de me l'avoir dit, j'avais zappé.

    Réponse à arthuro45 : J'ai essayé même avec les accolades c'est pareil.

    Que faire??

    Cordialement.

  5. #5
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    C'est normal que tu es mis un name et pas un id ici ? :

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Réponse à arthuro45
    Même avec un id ou un name et un id, ça fais pareil.

  7. #7
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    Commence par mettre une balise <?php au lieu de <? et tu as vérifié que tu ramené bien une valeur dans $_GET["mail"] ?

    (Je vais me faire sortir si je parle de php ici )

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(texte.replace(/\D/g,'') == '1')
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    Bonjour,

    Merci pour vos réponse.

    J'ai mis <?php au lieu de <? et ça a marché : quel bêtise toute bête

    Vraiment un grand merci à tous pour votre aide.

  10. #10
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    J'ai mis <?php au lieu de <? et ça a marché : quel bêtise toute bête
    En tombant sur de vieux scripts, je me suis déjà fais avoir Alors je fais attention

    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Smarty] Affichage de "Array" lors de recupération dans base de données
    Par brotapz dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/05/2010, 14h48
  2. deriver une inscription dans base de données
    Par mapomme40 dans le forum Administration
    Réponses: 1
    Dernier message: 03/12/2009, 16h33
  3. Comment vérifier si la conenection à la base de données a eu lieu
    Par gibea00 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/01/2008, 22h32
  4. Erreur lors de la connection d'un client oracle vers le serveur de base de donnée
    Par Sabact dans le forum Connexions aux bases de données
    Réponses: 1
    Dernier message: 12/12/2006, 08h33
  5. Vérifier si mail valide ’@.’ dans un formulaire
    Par Chansonnette dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2006, 14h09

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