Avatar billede driis Nybegynder
12. april 2004 - 16:59 Der er 11 kommentarer og
2 løsninger

Sammenligning af strenge

Flg. kodestump skal sammenligne 2 strenge. Selvom rpass og pass indeholder nøjagtig samme streng, fungerer det ikke. Hvad gør jeg galt ?


<%
    var conn=createConnection();
    var    user=Request("user");
    var    pass=new String(Request("pass"));
       
    var strQ = 'SELECT pass FROM Bruger WHERE brugerNavn="' + user + '"';
    var    rs = conn.Execute(strQ);
    var rpass= new String(rs("pass"));
   
    if ( rpass==pass )
    {
        Session("loggedIn") = true;
        Response.Redirect("index.asp");
    }
    else
    {
        Response.Write(pass+"<br>"+rpass);
    }   
%>
Avatar billede Slettet bruger
12. april 2004 - 17:05 #1
Eftersom det er asp skal det vel være
if rpass=pass then
        Session("loggedIn") = true;
        Response.Redirect("index.asp");
else
        Response.Write(pass+"<br>"+rpass);
End if
%>
Avatar billede Slettet bruger
12. april 2004 - 17:05 #2
Og der skal ikke var foran dine variabler.
Avatar billede Slettet bruger
12. april 2004 - 17:08 #3
Og ; skal lige væk :-)
if rpass=pass then
        Session("loggedIn") = true
        Response.Redirect("index.asp")
else
        Response.Write(pass+"<br>"+rpass)
End if
Avatar billede tbm_iceman Nybegynder
12. april 2004 - 17:08 #4
<%
    Dim Conn, User, Pass, RPass, strQ, RS
   
    Conn = createConnection()
    User = Request("user")
    Pass = CStr(Request("pass"))
       
    strQ = "SELECT pass FROM Bruger WHERE brugerNavn='" & User & "';"
    RS    = conn.Execute(strQ)
    RPass = CStr(RS("pass"))
   
    If RPass = Pass Then
        Session("loggedIn") = True
        Response.Redirect("index.asp")
    Else
        Response.Write(Pass & "<br>" & RPass)
    End If
%>
Avatar billede driis Nybegynder
12. april 2004 - 17:14 #5
Desværre, eftersom det er et krav at siden skrives i JScript og ikke VBScript, kan jeg ikke bruge svaret. Det fungerer ellers fint.
Avatar billede Slettet bruger
12. april 2004 - 17:18 #6
Jeg anede ikke at man bare kunne skrive jscript i asp uden at angive det med script tagget men ok :-)
Kan det være noget med store og små bogstaver? Er du sikker på at kodeordene er helt ens?
Avatar billede Slettet bruger
12. april 2004 - 17:21 #7
Måske noget med

if (RPass.toLowerCase = Pass.toLowerCase)
Avatar billede Slettet bruger
12. april 2004 - 17:22 #8
Jeg prøver lige igen :-)
if (rpass.toLowerCase == pass.toLowerCase)
Avatar billede driis Nybegynder
12. april 2004 - 18:00 #9
hmm, det virker med
if ( rpass.localeCompare(pass) == 0 )

Men jeg er lidt i tvivl om hvad localeCompare egentlig gør.
Avatar billede retry Nybegynder
12. april 2004 - 18:27 #10
Prøv lige
var rpass= new String(rs("pass").value);
Avatar billede Slettet bruger
12. april 2004 - 18:59 #11
Der står lidt om localeCompare her http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/js56jsmthlocalecompare.asp
Det er noget med at der bliver sammenlignet for den rigtige(den du bruger) tegntabel,landekode.
Avatar billede driis Nybegynder
12. april 2004 - 19:13 #12
retry >> Det hjælper ikke

bertie >> Jeg kan tilsyneladende godt bruge localeCompare, så vidt jeg kan se. Du må gerne lægge et svar.
Avatar billede Slettet bruger
12. april 2004 - 19:43 #13
Oki :-)
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
Kurser inden for grundlæggende programmering

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