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

AJAX Discussion :

Vérifier l'unicité de l'identifiant en affichant une fenêtre d'alerte avec AJAX


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut Vérifier l'unicité de l'identifiant en affichant une fenêtre d'alerte avec AJAX
    Bonjour,
    Bon voilà mon problème, sur mon formulaire d'inscription quand quelqu'un entre un identifiant déjà existant dans la base de donnée un petit message s'affiche en dessous du champ Identifiant "Cet identifiant est déjà utilisé" mais si l'utilisateur ignore ce message et clique sur s'inscrire, le formulaire s'envoie dans la base de donnée sans bloquage de l'inscription,alors vu que je suis débutante en AJAX j'aimeraisbien savoir comment bloquer l'inscription et cela en affichant une fenêtre d'alerte contenant le message suivant: "Cet identifiant est déjà utilisé, veuillez en choisir un autre!" Voila mon code AJAX:
    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
    function writediv(texte) 
    { 
    document.getElementById('pseudobox').innerHTML = texte; 
    } 
     
    function verifPseudo(Identifiant) 
    { 
    if(Identifiant != '') 
    { 
    if(Identifiant.length<4)
    { 
    writediv('<span style="color:#cc0000"><b>'+Identifiant+' :</b> ce Identifiant est trop court</span>');
    Identifiant.select()
    }
    else if(Identifiant.length>20) 
    writediv('<span style="color:#cc0000"><b>'+Identifiant+' :</b> ce Identifiant est trop long</span>'); 
    else if(texte = file('verifpseudo.php?Identifiant='+escape(Identifiant))) 
    { 
    if(texte == 1) 
    alert("Desolé cet identifiant existe déjà"); 
    else if(texte == 2) 
    writediv('<span style="color:#1A7917"><b>'+Identifiant+' :</b> ce Identifiant est libre</span>'); 
    else 
    writediv(texte); 
    } 
    } 
     
    } 
     
    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); 
    }
    Et le code 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
    31
    32
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Document sans titre</title> 
    </head> 
     
    <body><?php 
    // 
    // VERIFICATION EN LIVE DU PSEUDO 
    // 
     
    // CONNECION SQL 
    $serveur = 'localhost';
    $user = 'root';
    $passwd = '';
    $base='inscription';
    $connect = mysqli_connect($serveur,$user,$passwd,$base);
     
     
    // VERIFICATION 
    $result = mysqli_query($connect,"SELECT Identifiant FROM login WHERE Identifiant='".$_GET["Identifiant"]."'"); 
    if(mysqli_num_rows($result)>=1) 
    	echo "Desolé cet identifiant existe déjà";
    else 
    	echo "Cet identifiant est disponible"; 
    ?> 
     
     
     
    </body> 
    </html>

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    Bonjour,

    Attention donner des informations aux pirates c'est mal.
    Car il peuvent trouver les identifiants qui existent déjà avec ce script.

    De plus aucun contrôle fiable ne se fait en ajax, il faut refaire tous les contrôles en php et renvoyer une erreur à ton script ajax.

    Bon sinon pour ton problème tu n'as qu'a dire à ton script PHP de renvoyer du 1 et du 2 suivant les cas car c'est ce que tu test en javascript :
    php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(mysqli_num_rows($result)>=1) 
    	echo 1;
    else 
    	echo 2;
    qui correspondra aux tests là :

    if(texte == 1)
    alert("Desolé cet identifiant existe déjà");
    else if(texte == 2)
    writediv('<span style="color:#1A7917"><b>'+Identifiant+' :</b> ce Identifiant est libre</span>');

  3. #3
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    J'ai déjà essayé mais ça ne marchetoujours pas, çane bloque pas l'inscription!

  4. #4
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    Ah oui mais dans ton code tu n'as pas tout donné.

    La fonction verifPseudo est testé quelque par ? mais elle ne renvoie aucun retour.

    Dans les cas ou tu bloques l'inscription il faudrait que tu return false;




    tu pourrais aussi rajouter dans ton code un test sur xhr_object.status ==200

  5. #5
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2017
    Messages : 15
    Points : 3
    Points
    3
    Par défaut
    Voila mon code verifpseudo
    Code html : 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
    <!DOCTYPE> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Document sans titre</title> 
    </head> 
     
    <body><?php 
    // 
    // VERIFICATION EN LIVE DU PSEUDO 
    // 
     
    // CONNECION SQL 
    $serveur = 'localhost';
    $user = 'root';
    $passwd = '';
    $base='inscription';
    $connect = mysqli_connect($serveur,$user,$passwd,$base);
     
     
    // VERIFICATION 
    $result = mysqli_query($connect,"SELECT Identifiant FROM login WHERE Identifiant='".$_GET["Identifiant"]."'"); 
    if(mysqli_num_rows($result)>=1) { 
            return false;
            echo "Desolé cet identifiant existe déjà";
    }
    else {
            echo "Cet identifiant est disponible"; 
    }
    ?> 
     
     
     
    </body> 
    </html>
    tu pourrais aussi rajouter dans ton code un test sur xhr_object.status ==200??? J'ai pas compris!

  6. #6
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    je parlais de ta fonction javascript verifPseudo pas du fichier php.

    Voici en gros ce que je te propose :

    code 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
    <?php 
    // 
    // VERIFICATION EN LIVE DU PSEUDO 
    // 
     
    // CONNECION SQL 
    $serveur = 'localhost';
    $user = 'root';
    $passwd = '';
    $base='inscription';
    $connect = mysqli_connect($serveur,$user,$passwd,$base);
     
    // VERIFICATION 
    $result = mysqli_query($connect,"SELECT Identifiant FROM login WHERE Identifiant='".$_GET["Identifiant"]."'"); 
    if(mysqli_num_rows($result)>=1) 
    	echo 1;
    else 
    	echo 2;


    et voici le code Javascript
    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
    function writediv(texte) 
    { 
      document.getElementById('pseudobox').innerHTML = texte; 
    } 
     
    function verifPseudo(Identifiant) 
    { 
      if(Identifiant != '') { 
        if(Identifiant.length<4){ 
          writediv('<span style="color:#cc0000"><b>'+Identifiant+' :</b> ce Identifiant est trop court</span>');
          Identifiant.select()
        } else if(Identifiant.length>20) 
          writediv('<span style="color:#cc0000"><b>'+Identifiant+' :</b> ce Identifiant est trop long</span>'); 
        else if(texte = file('verifpseudo.php?Identifiant='+escape(Identifiant))) { 
          if(texte == 1) {
            alert("Desolé cet identifiant existe déjà");
            return(false); 
          } else if(texte == 2) {
            writediv('<span style="color:#1A7917"><b>'+Identifiant+' :</b> ce Identifiant est libre</span>');
            return(true); 
          } else {
            writediv(texte);
            return(false);
          } 
        } 
      }  
    } 
     
    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.status ==200) 
        return(xhr_object.responseText); 
      else 
        return(false); 
    }
    Et quand tu fais ton appel à la fonction javascript verifPseudo tu test le retour de cette fonction et tu bloque les actions sur FALSE

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

Discussions similaires

  1. [XL-2013] Afficher une fenêtre d'alerte à l'issue de 10 minutes
    Par Kirkan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/11/2016, 16h28
  2. Afficher une Fenêtre MDI à partir d'une DLL
    Par FredericB dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/12/2005, 16h58
  3. Afficher une fenêtre d'informations qui donne l'impression de se détâcher
    Par jean_bobi dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 25/09/2005, 15h31
  4. Réponses: 1
    Dernier message: 16/02/2005, 12h04
  5. Afficher une buffer de pixel avec Direct3D
    Par Black_Daimond dans le forum DirectX
    Réponses: 4
    Dernier message: 27/12/2002, 22h18

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