Avatar billede webblaster Nybegynder
10. maj 2006 - 11:58 Der er 11 kommentarer og
1 løsning

problem med login + xml

Hej jeg har et lille problem med en login funktion som tjekker brugernavn og password op mod en xml fil koden jeg bruger til at hente data fra xml filen ser sådan her ud:

var xmlData:XML = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = function(s) {
    if (s) {
        for (var a = 0; a<xmlNodes.length; a++) {
        var xmlNodes:String = this.firstChild.childNodes;
       
        Username[a] = xmlNodes[a].childNodes[0].firstChild;
        PassWord[a] = xmlNodes[a].childNodes[1].firstChild;
        Antal[a] = xmlNodes[a].childNodes[2].firstChild;
        Type[a] = xmlNodes[a].childNodes[3].firstChild;
        }
           
                       
    } else {
       
    }
};
var total = "antalimage.xml";
xmlData.load(total)

stop();

og koden som tjekker om brugernavn og password er ok ser sådan her ud:

on(release){
   
    for (var k = 0; k < d; k++) {
    if(Uname == _root["UserName"+k] && Pword == _root["Password"+k]){
        var ImageType = _root["Type"+k]
        var ImageAntal = _root["Antal"+k]
        gotoAndPlay(5);
   
    }
    else{
       
                    Com = "Adgang Nægtet !!";
           
            }
            }
           
}
Avatar billede webblaster Nybegynder
10. maj 2006 - 12:14 #1
en lille ting : d = xmlNodes.length;
og jeg har rettet _root["UserName"+k] til _root["Username"+k]

men der sker intet når jeg trykker på login knappen.
Avatar billede webblaster Nybegynder
10. maj 2006 - 12:19 #2
der var lige en lille dumme fejl til jeg er kommet til at byttte om på disse to linjer

for (var a = 0; a<xmlNodes.length; a++) {
var xmlNodes:String = this.firstChild.childNodes;

det skal være

var xmlNodes:String = this.firstChild.childNodes;
for (var a = 0; a<xmlNodes.length; a++) {

men nu bliver jeg nægtet adgang selv om at jeg skriver et rigtigt username + password
Avatar billede webblaster Nybegynder
10. maj 2006 - 12:23 #3
jeg har fundet ud af at _root["Username"+k] og _root["Password"+k] bliver sat = "" , selv om at jeg i koden sætter dem = xmlnodes ???
Avatar billede _k Nybegynder
10. maj 2006 - 12:32 #4
Når du læser dine variable ind fra XML'en smider du dem ned i et array. Når du efterfølgende tjekker på dem, forventer du at de er variable - den går ikke!

Du er selv nået langt, men mon ikke det her gør en forskel:

if(Uname == _root.Username[k] && Pword == _root.Password[k]) {

Du bør også deklarere dine Arrays fra start (bare lige for en god ordens skyld). Altså:

var Username:Array = new Array();
osv.
Avatar billede webblaster Nybegynder
10. maj 2006 - 12:33 #5
ny ser koden sådan her ud :
var xmlData:XML = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = function(s) {
    if (s) {
        var xmlNodes:String = this.firstChild.childNodes;
        for (var a = 0; a<xmlNodes.length; a++) {
       
       
        Username[a] = xmlNodes[a].childNodes[0].firstChild;
        PassWord[a] = xmlNodes[a].childNodes[1].firstChild;
        Antal[a] = xmlNodes[a].childNodes[2].firstChild;
        Type[a] = xmlNodes[a].childNodes[3].firstChild;
       
        _root["Username"+a] = Username[a];
        _root["Password"+a] = Password[a];
        _root["Antal"+a] = Antal[a];
        _root["Type"+a] = Type[a];
       
        }
           
        d = xmlNodes.length;
    } else {
       
    }
};
var total = "antalimage.xml";
xmlData.load(total)

stop();

men nu bliver _root["Username"+k] og _root["Password"+k] bliver sat = "undefined"
Avatar billede webblaster Nybegynder
10. maj 2006 - 12:37 #6
Ja selvfølgelig så bliver Username[a] = det rigtige! Men jeg bliver stadig nægtet adgang !
Avatar billede webblaster Nybegynder
10. maj 2006 - 12:47 #7
også selv om at :
_root.Username[a] = "user"
_root.Username[a] = "login"

men hvis jeg udskifter

if(Uname == _root.Username[k] && Pword == _root.Password[k]) {

med

if(Uname == "User" && Pword == "login") {

så virker det ?
Avatar billede _k Nybegynder
10. maj 2006 - 13:55 #8
Måske er det fordi du rent faktisk ikke har instantieret dine arrays?

Hvad sker der hvis du tracer indholdet af de forskellige arrays ud? Altså:
trace("_root.Username[k] : " + _root.Username[k]);
trace("_root.Password[k] : " + _root.Password[k]);

Du kan også have problemer med white space - tjek evt. også for det....
Avatar billede webblaster Nybegynder
10. maj 2006 - 14:13 #9
af en eller anden grund er _root.Username[k] = "" og det er _root.Password[k]også

men jeg kan sakkens skrive indholdet af xml'en ud i text felter via f.eks Username0 og Password0??
Avatar billede webblaster Nybegynder
10. maj 2006 - 14:14 #10
og der er ikke noget white space
Avatar billede _k Nybegynder
10. maj 2006 - 15:57 #11
Det lyder rimelig underligt! Er du sikker på at du får sat indholdet af din XML ordentligt i dine arrays? Prøv evt. at trace indholdet af alle arrays ud efter der er blevet parset data ind i dem. Så kan du se om du kigger efter det rigtige.
Avatar billede webblaster Nybegynder
17. maj 2006 - 11:47 #12
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester