webForumDet fria alternativet

if then else

ASP

5 svar · 291 visningar · startad av mozilla

Medlem sedan juli 20011 084 inlägg
Frågan#1

Jag har en kod snutt som jag stirrat mig blind på den senaste timmen... jag kan inte förstå vad som är fel... så kanske ni kan hjälpa till. här är koden:

SQL = "SELECT pass FROM tabell WHERE namn = '"& Session("Namn") &"' AND pass = '"& old_password &"'"
Set rs = Conn.Execute(SQL)

If rs.EOF Then
    strang = "action=persinfo&error=password"
    Response.Write "Error!"
Else
    If Trim(new_password) = "" Then
        new_password = old_password
    Else
        new_password = new_password
    End If

    SQL = "UPDATE tabell SET namn = '"& namn &"', email = '"& email &"', pass = '"& new_password &"' WHERE namn = '"& Session("Namn") &"'"
    Conn.Execute(SQL),,128
    If Session("Namn") <> namn Then Session("Namn") = namn
    strang = "action=persinfo"
    Response.Write "Inlaggd!"
End If

Vad som händer är att de känns som den kör båda if och else satsen. Av den enkla anledning att de står error på skärmen medan datan ändrat sig i databasen ändå... Allt har också med lösenordet att göra, dvs old_password/new_password för så fort man fyller i ett nytt lösenord så framträder detta mycket skumma problem. Annars(utan nytt lösenord) så fungerar allt som de ska.

Medlem sedan dec. 200012 464 inlägg
#2

Hmm

Sidan kanske körs två gånger? Första gången görs update och andra skrivs error ut!?

Har du någon response.redirect någonstans?

Medlem sedan juli 20011 084 inlägg
#3

jo... de känns så. Nej jag har ingen Response.Redirect utan jag tänkte testa med en javascripts kod som ser ut som följer:

Response.Write "<script language=""JavaScript"">"& vbCrLf &"<!--"& vbCrLf &"location.replace(sida.asp?"& strang &"')"& vbCrLf &"//-->"& vbCrLf &"</script><h3>Vänta mednas informationen lagras i databasen.</h3>"
Medlem sedan juli 20011 084 inlägg
#4

måste man ha Response.Redirect för att de ska fungera?

Medlem sedan juli 20011 084 inlägg
#5

snälla... låt den inte bara glida iväg? kan ingen expert ge sitt utlåtande... bland annat på, måste man ha Response.Redirect? för varför skulle den köra koden två gånger...?

Medlem sedan juni 200032 967 inlägg
#6

Nej, du måste inte ha en response.redirect. Du måste inte heller ha ett sådant javascript du har, de är ju bara till för att förflytta användaren till en annan sida.

Är detta sida.asp? Du kör med ditt javascript i så fall användaren vidare till samma sida igen, fast med felaktiga parametrar, så Error skrivs ut.

Och, ett If-block kan inte köras samtidigt som ett else-block. Det är en omöjlighet. På något sätt måste alltså sidan läsas två gånger, som LarsG skriver.

Om inte annat, ta bort ditt javascript och se vad som händer.

Mvh,

249 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)