Genom att ange användarnamn så ska man kunna ändra sitt lösenord och rätt namn ska matchas med rätt id för att få lösenordet på rätt plats
varPW=request.form(MD5("txtPassword"))
varUsername=request.form("txtUsername")
[B]varSQL=objConn.Execute("SELECT userID, username, userPass FROM tblUsers WHERE username="&varUsername)[/B]
SET objConn = connect()
objConn.Execute("update tblUsers set userPass="&varPW&" where userID="&varSQL("userID"))
response.redirect="/forgotpass.asp?message=done"
end if
Microsoft JET Database Engine (0x80040E10)
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
/forgotpass.asp, line 27
request.form(MD5("txtPassword")) Du kan inte skriva det i den ordningen. Du måste först hämta Request.Form sedan koda om dem med MD5. Förslagsvis
MD5(request.form("txtPassword"))
userPass="&varPW&" Jag antar att userPass är en string. I så fall måste du omge den med ''. Dvs
userPass='"& varPW &"'
Ditt fel verkar dock ha att göra med att txtUsername saknas? Är du säker på att den finns? testa och skriva ut SQL frågan med Response.Write och kontrollera(även här bör fnuttarna finnas med om det är en string?)
Du vet väl om att med den koden så kan man ju själv välja vem man vill ändra lösenord på? genom att ändra txtUsername till någon annans så byter du ju ut hans lösenord istället. Du bör nog se över säkerheten lite på ditt script.
Nu funkar det, men hur ska jag göra med säkerheten...eftersom jag använder md5-kontrollsumma för "kryptering" så kan man ju inte kryptera om det och skicka det till användarens mail....ska jag lägga in en koll om anvnamn och mailadress stämmer för att kunna ändra lösen?
Genom att ange användarnamn så ska man kunna ändra sitt lösenord och rätt namn ska matchas med rätt id för att få lösenordet på rätt plats
Och vad hindrar då att man byter någon annans lösenord, och loggar in med det?
WebbisNet skrev:
Nu funkar det, men hur ska jag göra med säkerheten...eftersom jag använder md5-kontrollsumma för "kryptering" så kan man ju inte kryptera om det och skicka det till användarens mail....ska jag lägga in en koll om anvnamn och mailadress stämmer för att kunna ändra lösen?
Är man inloggad så borde man få ändra sitt lösenord utan kontroller. Har man glömt sitt lösenord så får du skicka ut ett mail till den registrerade adressen, med ett slumpat lösenord. När man sedan loggat in med detta lösen kan man byta till det man vill ha.
Man bör dock kräva att de skriva in sitt gamla lösenord om man ska ändra lösenordet när man är inloggad. Så ingen annan kan ändra lösenord medan man inte har koll på datorn.