27. oktober 2002 - 19:26Der er
20 kommentarer og 1 løsning
If sætning springer videre til else selvom betingelsen er opfyldt
Problemmet er at selvom betingelsen er opfyldt, springer den alligevel videre ned til else-sætningen. Det gør den kun nå en INSERT sætning er sat ind eller virker den fint.
Her er min kode
Set RS = Server.CreateObject("ADODB.RecordSet") mySQL = "SELECT brugernavn" mySQL = mySQL & " FROM bruger" mySQL = mySQL & " WHERE brugernavn = '" & request.form("brugernavn") & "'" RS.Open mySQL, Conn, 1, 3
If NOT (Err.Number<>0) Then If RS.EOF OR RS.BOF Then response.write("findes ikke") ' mySQL = "INSERT INTO bruger" ' mySQL = mySQL & " (brugernavn, kodeord)" ' mySQL = mySQL & " VALUES ('" & request.form("brugernavn") & "', '" & request.form("kodeord") & "');" ' Conn.Execute mySQL
Else response.write("findes") RS.close End if Else Response.write "There were errors " & vbCR End if
Selvom brugernavn ikke findes i databasen, så bliver bruger godt nok tilføjet til databasen, men den udfører og resten af else-sætningen. Hvordan kan det være?
Mit problem er at alle sætninger efter else bliver udført og selvom at den først if rs.eof or rs.bof bliver udført. Altså
der findes ikke nogle bruger med det pågældende rs("brugernavn") derfor bliver denne indsat i tabellen.
if rs.eof or rs.bof then mySQL = "INSERT INTO bruger" mySQL = mySQL & " (brugernavn, kodeord)" mySQL = mySQL & " VALUES ('" & request.form("brugernavn") & "', '" & request.form("kodeord") & "');" Conn.Execute mySQL
Problemmet er bare at det næste også bliver udført, selovom det overstående også er blevet udført
else
response.write("Dette skal ikke udføres hvis ovenstående er udført, men bliver det alligevel")
Her er resten af koden, hvilket ikke er meget mere.
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then if (Request.Form("brugernavn") <> "" AND Request.Form("kodeord") <> "") then Set RS = Server.CreateObject("ADODB.RecordSet") mySQL = "SELECT brugernavn" mySQL = mySQL & " FROM bruger" mySQL = mySQL & " WHERE brugernavn = '" & request.form("brugernavn") & "'" RS.Open mySQL, Conn, 1, 3 varBrugernavn = request.Form("brugernavn") If NOT (Err.Number<>0) Then If RS("brugernavn").EOF OR RS("brugernavn").BOF Then response.write("findes ikke") mySQL = "INSERT INTO bruger" mySQL = mySQL & " (brugernavn, kodeord)" mySQL = mySQL & " VALUES ('" & varBrugernavn & "', '" & request.form("kodeord") & "');" Conn.Execute mySQL
Else response.write("findes") RS.close End if Else Response.write "There were errors " & vbCR End if
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.