FirehMedlem sedan jan. 2003173 inlägg
Nu är jag här igen... :OO
Har just upptäckt ett problem. Jag har kört med PASSWORD() när jag har sparat lösenorden i databasen. När man sedan har loggat in så har jag jämfört på så sätt att jag krypterar in det inskrina lösenordet först och sedan jämför det med det befintliga. Upptäckte just att den inte hinner med...
ID = rs("ID")
Uppdate= "UPDATE Users SET Pass2=Password('"&Pass&"') WHERE ID=" & ID
db.Execute Uppdate
Pass1 = rs("Pass")
Pass2 = rs("Pass2")
If Pass1 = Pass2 Then
osv
Problemet är att när den läser ur Pass2, så läser den ur det som skrevs in vid föregående inloggning. Det resulterar i att man loggas in oavsett vilket lösenord man skriver. Gången därefter blir det däremot fel även om man skriver rätt. Hoppas ni fattar...
Finns det något sätt att i ASP kryptera lösenordet man skrivit i Pass-rutan i formuläret utan att skicka det till MySQL som tydligen inte hinner med att skriva in innan den läser ur?
PatrikBMedlem sedan mars 20002 713 inlägg
du hämtar recordsetet med värdena för pass och pass2 INNAN du kör uppdateringen.
testa detta:
ID = rs("ID")
Uppdate= "UPDATE Users SET Pass2=Password('"&Pass&"') WHERE ID=" & ID
db.Execute Uppdate
Pass1 = rs("Pass")
Pass2 = pass '## -- variabeln du använder för att uppdatera det nya lösenordet --
If Pass1 = Pass2 Then
osv
cya,
/PatrikB
FirehMedlem sedan jan. 2003173 inlägg
Hejsan! Jag tackar för förklaringen till varför det blir så.
Jag gjorde som så att jag satte ett nytt recordset efter att jag gjort uppdateringen.
Då fungerar det som det ska.
Jag förstår däremot inte din kod. Pass är nämligen det okrypterade lösenordet man skriver i lösenordsrutan medan Pass1 är det krypterade lösenordet i databasen. Så det är som att jämföra a123a465a132a5 med nisse.
Men, men... det fungerar nu i alla fall.
Stort tack för hjälpen!
spangoMedlem sedan juni 20006 147 inlägg
Fotnot: Enligt manualen ska man inte använda password-funktionen, utan md5 eller någon sha-version.