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
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<>'
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.