Xml + javascript pour test login et mot de passe

elodielole Messages postés 17 Date d'inscription mardi 15 mars 2005 Statut Membre Dernière intervention 21 avril 2009 - 21 avril 2009 à 19:35
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 22 avril 2009 à 12:35
Bonjour,

J'ai crée un fichier xml :
<?xml version="1.0" encoding="iso-8859-1"?>

 eric51

 test

 

Il contient le login et le mdp de l'administrateur, le problème c'est que je n'arrive pas à faire fonctionner ma fonction ci-dessous, je veux que si  le login et le mdp sont ok alors je valide mon formulaire sinon je veux un message d'erreur .  Pouvez vous m'eclairez?.

<script language="JavaScript1.2">

function verif_F_inscri()
{


    var pseudo =(document.forms["frm_conn"].pseudo.value);
    var pass =(document.forms["frm_conn"].pass.value);
    var msg_ERR_nom = "requis"; 
    var objControle;            
    var objControle2;  
    test_pseudo(pseudo);
    test_pseudo(pass);
}


// Fonction qui crée un nouveau noeud d'erreur
function new_ERR_node(noeud, msg)
{
     var parent;
    parent = noeud.parentNode;
       erreur = parent.appendChild(document.createElement("erreur"));
       erreur.setAttribute("class","erreur");
      erreur.appendChild(document.createTextNode(msg));
}


// Fonction de test du pseudo via AJAX
function test_pseudo(chaine)
{
    var req = null;
    if(window.XMLHttpRequest) // FIREFOX
          req = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
          req = new ActiveXObject("Microsoft.XMLHTTP"); 
     else
          return(false);
   
    req.onreadystatechange = function()
    {
        if(req.readyState == 4)
        {
            var doc = req.responseXML;
            var element = doc.getElementsByTagName('pseudo');
            var element2 = doc.getElementsByTagName('pass');
           
   for (var j = 0; j < element.length; j++)
   {
                // On teste si le pseudo different à celui qui a été saisi
                if (chaine != element[j].firstChild.data) 
                {
                    objControle2 = document.forms["frm_conn"].pseudo;
                     new_ERR_node(objControle2, "mauvais login ");
                }
        }
   for (var i = 0; i < element2.length; i++)
   {
   
             if (chaine != element2[j].firstChild.data)
             { 
                 objControle = document.forms["frm_conn"].pass;
                  new_ERR_node(objControle, "mauvais mdp");
             }
   }
};
    req.open("GET", "utilisateurs.xml", true);
    req.send(null);
}
</script>

Merci par avance
Elodie

4 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
21 avril 2009 à 20:22
j'ai pas tous regarder mais si tu n'a qu'un login et un pass autant faire directement

var element = doc.getElementsByTagName('pseudo')[0].firstChild.nodeValue
var element2 = doc.getElementsByTagName('pass')[0].firstChild.nodeValue
if(element==pseudo && element2==pass){
alert('code bon')
}
else{
alert('code maivais')
}
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
22 avril 2009 à 09:55
Hello,

Kazma a raison... de plus stocker des données identifiant dans un xml c'est pas securisé du tout car on a juste a regarder le code source puis copier "utilisateurs.xml" et taper l'url jusqu'a ce fichier et là MAGIQUE on voit les identifiants !

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 avril 2009 à 12:30
Bonjour,
et s'il peut y en avoir plusieurs :
if (chaine != element[j].firstChild.data)
ce n'est pas chaine ( un machin passé en paramètre qu'il faut tester mais la saisie )
ni .data mais nodeValue
il faut faire une ch'tiote boucle....

function test_pseudo()
{    var req = null;
    if(window.XMLHttpRequest) // FIREFOX
             req = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
             req = new ActiveXObject("Microsoft.XMLHTTP");
    else
             return(false);
    req.onreadystatechange = function()
    {        if(req.readyState == 4)
            {
                    var doc = req.responseXML;
                    var element = doc.getElementsByTagName('pseudo');
                    var element2 = doc.getElementsByTagName('pass');
                 
                for (var j = 0; j < element.length; j++)
                {
                         if ( document.frm_conn.pseudo.value == element[j].firstChild.nodeValue &&
                                document.frm_conn.pass.value == element2[j].firstChild.nodeValue )
                        { break;    }
              }
              if (j>=element.length)
                                       {
                              objControle2 = document.frm_conn.pseudo;
                                new_ERR_node(objControle2, "mauvais login ");
                         }

            }
    };
    req.open("GET", "utilisateurs.xml", true);
    req.send(null);

    <form name="frm_conn">
       
       
       
    </form>

>>des données identifiant dans un xml c'est pas securisé
en mettant le .htaccess adéquat ? ça ne suffirait pas ?

Cordialement [mon Site] [M'écrire] Bul
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
22 avril 2009 à 12:35
bien sûr, il fallait lire :
sans paramètre !
0
Rejoignez-nous