webForumDet fria alternativet

om UPDATE inte utför något ?

ASPur ASP

5 svar · 277 visningar · startad av Pellefant

Medlem sedan maj 20023 372 inlägg
Frågan#1

Hej! :)

Jag använder denna kod, som fungerar utmärkt för att byta
lösenord.

Men..., även när man skriver ett "oldpass" som inte finns, så
skrivs ju ut att pwd ändrats, finns det någon möjlighet att vid
SQL satsen skriva ut att "fel lösenord"(dvs när det inte blir någon
UPDATE, och i så fall inte heller då skriva ut att lösenordet har
ändrats)

(userID är en sträng)

p.s Varför blev detta inlägg så "brett", jag har försökt redigera detta, genom att trycka på enter/radbrytning på alla rader ovan, men det hjälpte inte.

p.s.2 Löste sig när jag gick in i koden nedan och gjorde några radbrytningar.

SQL = "UPDATE Table1 SET pwd = '" & request.form("newpass")
& "' WHERE userID = '" & Session("userID") & "' AND pwd = '" &
request.form("oldpass") &"'"
Databas.execute(SQL)

Your password is changed
Medlem sedan apr. 20007 588 inlägg
#2

Humm, nu var det ett hundra år sedan jag jag använde ADO men jag har för mig att du kan ange en variabel i execute-metoden som fylls med antalet påverkade rader i UPDATE-satsen, typ så här:

Databas.execute(SQL, rowsAffected)
IF rowsAffected = 0 THEN
   Response.write "Fel lösen eller nått"
ELSE
.....

Annars så kan du ju splitta det på två frågor, först en select för att kontrollera inmatade lösen och om detta är korrekt så kör du en update.

OBS: Tech-quiz:
Gissa vad som händer om jag anger detta värde som mitt gamla lösenord på din byta-lösen-sida med nuvarande implementation:
' or userId<>'

Ajajajajaj..... Farligt.

Medlem sedan dec. 200012 464 inlägg
#3

ADO-relaterat, flyttas från SQL till ASP.

Databas.execute SQL, rowsAffected

Det skall inte vara några parenteser.

Medlem sedan maj 20023 372 inlägg
#4

Hej!

Jag löste det med en if-sats innan själva SQL frågan. Förstår inte vrför jag inte tänkte på det innan.

Tack för responsen.

Medlem sedan apr. 20007 588 inlägg
#5

Pellefant, glöm inte det jag skrev sist i mitt inlägg ovan. Du måste "escape:a" enkelfnuttar (för att tala konstig svenska :)) annars kan man göra elaka saker om du bara lassar in användarens input rakt in i SQL-satsen.

Medlem sedan maj 20023 372 inlägg
#6

Nejdå, efter att ha läst tråden nedan så är man ju livrädd för sånt. :(

http://www.webforum.nu/showthread.php?s=&threadid=43076&highlight=injection

134 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)