webForumDet fria alternativet

hämta id

ASP

8 svar · 334 visningar · startad av WebbisNet

Medlem sedan feb. 20032 027 inlägg
Frågan#1

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

Medlem sedan juli 20033 147 inlägg
#2

Inte hållit på med ASP på år och dar, men måste du inte skapa ett recordset för att hämta poster?

Medlem sedan feb. 20032 027 inlägg
#3

Melea skrev:

Inte hållit på med ASP på år och dar, men måste du inte skapa ett recordset för att hämta poster?

glömde den, men problemet kvarstår

Medlem sedan juli 20011 084 inlägg
#4
  1. 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"))
  1. userPass="&varPW&" Jag antar att userPass är en string. I så fall måste du omge den med ''. Dvs
userPass='"& varPW &"'
  1. 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?)

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

Medlem sedan dec. 200012 464 inlägg
#5

Strunta i select och gör update direkt.

sql = "update tblUsers set userPass = '" & _
replace(varPW,"'","''") & "'" &_
" where username = '" & replace(varUsername,"'","''") & "'"

Åsså anges textvärden inom '

Medlem sedan feb. 20032 027 inlägg
#6

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?

Medlem sedan dec. 19996 721 inlägg
#7

WebbisNet skrev:

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.

Medlem sedan juli 20011 084 inlägg
#8

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.

Medlem sedan dec. 19996 721 inlägg
#9

Ja, det är en lämplig variant

269 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)