Avatar billede nanna31 Praktikant
26. marts 2006 - 12:14 Der er 17 kommentarer og
1 løsning

Svært at foklare!

I tekstfeltet login.respons står der "hverken sand eller falsk???", når jeg kører programmet, dvs. variablen myLoadVars.feedback er hverken true eller false. Hvis jeg så udkommenterer if-sætningerne og aktiverer den sidste linie istedet for, står der nu true i tekstfeltet login.respons!  Er det ikke ret svært at forklare?

trace("success: "+success);
        if(myLoadVars.feedback==true){login.respons="Godkendt!"}
        else if (myLoadVars.feedback==false){login.respons="Ikke godkendt!"}
        else {login.respons="hverken sand eller falsk???"}
        //login.respons=myLoadVars.feedback; // Virker!
Avatar billede thulstrup Nybegynder
26. marts 2006 - 12:33 #1
myLoadVars.feedback er en streng og ikke en boolean, så din kode skal se sådan her ud:

if(myLoadVars.feedback=="true"){login.respons="Godkendt!"}
else if (myLoadVars.feedback=="false"){login.respons="Ikke godkendt!"}
else {login.respons="hverken sand eller falsk???"}
Avatar billede nanna31 Praktikant
26. marts 2006 - 12:43 #2
Det var den eneste forklaring, jeg selv fandt, men det giver samme resultat desværre.
Avatar billede nanna31 Praktikant
26. marts 2006 - 12:55 #3
Hvis du kan finde en forklaring Rasmus, har du også løst dette spørgsmål for mig - http://www.eksperten.dk/spm/697932
Avatar billede thulstrup Nybegynder
26. marts 2006 - 13:04 #4
Det lyder lidt mystisk, det bør virke :)

Prøv lige at checke at myLoadVars.feedback nu også er en streng:
trace(typeof myLoadVars.feedback);
Avatar billede nanna31 Praktikant
26. marts 2006 - 14:05 #5
trace(typeof myLoadVars.feedback) skriver undefined?
Avatar billede barklund Nybegynder
26. marts 2006 - 16:28 #6
Nu kan variablen jo også være "true ", "true\n" og andre ting, som du ikke lige kan se.

Hvad er dit output fra dit script - helt præcist?
Avatar billede nanna31 Praktikant
27. marts 2006 - 21:39 #7
Hvilket output mener du?
Avatar billede barklund Nybegynder
28. marts 2006 - 15:16 #8
Altså, hvis du åbner siden i en browser, hvad outputter den så? Den side, som du prøver at læse ind via LoadVars that is.
Avatar billede nanna31 Praktikant
29. marts 2006 - 15:02 #9
Den side, som loadVars åbner, hedder login.asp og indholder flg:


<% @ Language="VBScript"     %>
<% Option Explicit         %>
<% response.buffer=true     %>


<% Response.CacheControl = "no-cache"         %>
<% Response.AddHeader "Pragma", "no-cache"     %>
<% Response.Expires = -1             %>

<%
Dim CONN, DSN, SQL, RS
Set CONN = Server.CreateObject("ADODB.CONNection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("database.mdb")
CONN.Open DSN



Dim varUsername, varPass, feedback

varUsername =        Request.Form    ("username"    )
varPass =        Request.Form    ("pass"        )

SQL = "Select * From bruger Where Username = '" & varUsername & "'"

Set RS = Conn.Execute(SQL)

If (RS.bof) and (RS.eof) then
    Response.Write("feedback=" & false)
Else
    Response.Write("feedback=" & true)
End if



CONN.Close
Set CONN = Nothing
%>



Meningen er, at der skal tjekkes for, om et givent login allerede findes i databasen. I så fald skal der returneres true.
Avatar billede barklund Nybegynder
29. marts 2006 - 15:16 #10
Og hvis du åbner login.asp i browseren, hvad ser du så? Jeg gætter krafigt på, at du har et linjeskift til sidst efter den sidste %>, så output bliver "feedback=true\n" og så har variablen jo en newline til sidst i værdien.
Avatar billede nanna31 Praktikant
29. marts 2006 - 15:35 #11
Nu spø'r jeg måske dumt, men hvordan er det jeg åbner den i browseren?
Avatar billede barklund Nybegynder
29. marts 2006 - 15:38 #12
Hvis den ligger på foo.dk/login.asp, så åbner du din browser på foo.dk/login.asp - vel? Hvordan åbner du andre sider i en browser? Bare fordi flash skal læse den, så er den som sådan ikke forskellig fra alle andre asp-sider.
Avatar billede nanna31 Praktikant
29. marts 2006 - 15:40 #13
Nåh ja :-)

Dette er output : feedback=False
Avatar billede barklund Nybegynder
29. marts 2006 - 15:47 #14
Ah, men "False" er jo ikke det samme som "false". Du har nok lidt misforstået LoadVars, som at de kan overføre en vilkårlig datatyper. LoadVars kan KUN overføre strenge, så du kan ikke overføre en boolean fra ASP til Flash uden at konvertere den til en streng og konvertere den tilbage igen.

Du bør nok rette din ASP, så du ved hvilket outputformat, som du bruger - og så omringe det med &-tegn, så du er sikker på, at variablen kun har den længde, du ønsker og ikke har ekstra whitespace:

If (RS.bof) and (RS.eof) then
    Response.Write("&feedback=false&")
Else
    Response.Write("&feedback=true&")
End if

Så kan du i flash lave:

var feedback = myLoadVars.feedback == "true";
if (feedback) {
    login.respons = "Godkendt!";
} else {
    login.respons = "Ikke godkendt!";
}

Så er der lidt bedre styr på variablerne og deres typer :)

--
Morten Barklund
Avatar billede nanna31 Praktikant
29. marts 2006 - 19:16 #15
Tak for først klasses hjælp.... og tålmodighed ;-)
Avatar billede nanna31 Praktikant
29. marts 2006 - 19:20 #16
Lægger du en hilsen på http://www.eksperten.dk/spm/697932 , er pointene der også dine - det er nemlig den samme løsning.
Avatar billede barklund Nybegynder
29. marts 2006 - 19:35 #17
Done :) Og tark for points :)
Avatar billede nanna31 Praktikant
30. marts 2006 - 23:45 #18
Det er mig, der takker.
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