webForumDet fria alternativet

Förlorat lösen

ASPur ASP

11 svar · 354 visningar · startad av WebbisNet

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

Jag försöker skriva en funktion som skickar tillbaka det lösenord som tillhör den mailadress användaren har angett. Får det inte att funka och nu får jag 'Type mismatch Retrieve'
Lösenordet är krypterat med md5 så jag måste omvandla det till läsbar text igen när det skickas

<form action="lostPass.asp?send=pw" method="post">
<input type="text" name="txtUser">		 
</form>

<%If request("send")="pw" Then

Dim sTo 
Dim sTextBody 
Dim objMail

Dim email
email = Request.Form("txtUser") 
pass = md5(retrieve("password"))	  
Set retrieve=objConn.Execute("Select password, email From tblUsers where email = "&email)

sTo = email
sFrom = "info@webbisen.com"
sSubject = "Förlorat lösenord"
sTextBody = comments

'Create the mail object and set key properties
Set objMail = Server.CreateObject("CDO.Message")

objMail.From = sFrom  
objMail.To = sTo 
objMail.TextBody = "Ditt lösenord är"&retrieve("password")

'Send the email and clean up
objMail.Send 
Set objMail = Nothing

End If%>
Medlem sedan juni 200032 969 inlägg
#2

Apostrofer runt strängvärden i SQL-frågor.

Set retrieve=objConn.Execute("Select password, email From tblUsers where email = '"&pass&"'")
Medlem sedan feb. 20032 027 inlägg
#3

@nders skrev:

Apostrofer runt strängvärden i SQL-frågor.

Set retrieve=objConn.Execute("Select password, email From tblUsers where email = '"&pass&"'")

ändrat till Set retrieve=objConn.Execute("Select password, email From tblUsers where email = '"&email&"'") men har fortfarande samma fel

Medlem sedan juni 20034 013 inlägg
#4

Re: Förlorat lösen

WebbisNet skrev:

Lösenordet är krypterat med md5 så jag måste omvandla det till läsbar text igen när det skickas

MD5 är ingen kryptering. Det är en "kontrollsiffra", dock ganska lång sådan. Du kan inte omvandla det till läsbar text igen. Det är det som är poängen med att använda MD5. Du får slumpa fram ett nytt lösenord åt användaren som du skickar ut och lägger in i databasen.

Medlem sedan feb. 20032 027 inlägg
#5

Re: Re: Förlorat lösen

tydal skrev:

WebbisNet skrev:

Lösenordet är krypterat med md5 så jag måste omvandla det till läsbar text igen när det skickas

MD5 är ingen kryptering. Det är en "kontrollsiffra", dock ganska lång sådan. Du kan inte omvandla det till läsbar text igen. Det är det som är poängen med att använda MD5. Du får slumpa fram ett nytt lösenord åt användaren som du skickar ut och lägger in i databasen.

Nåt förslag på hur man slumpar fram lösenordet och lägger in i accessdatabasen och vad som fortfarande är fel i koden

Medlem sedan juni 200032 969 inlägg
#6

Får du verkligen samma felmeddelande fortfarande? Kan du posta hela felmeddelandet?

Medlem sedan feb. 20032 027 inlägg
#7

@nders skrev:

Får du verkligen samma felmeddelande fortfarande? Kan du posta hela felmeddelandet?

såg en liten miss, hade retrieve innan jag ens satte sql-satsen

Nu har jag kommit till den del då mailet kommer fram och då behöver jag alltså slumpa fram ett lösenord och lägga in i databasen, hur gör man det?

Medlem sedan feb. 20032 027 inlägg
#8

Nån som kan se vaför jag får Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/sendPass.asp, line 15
med denna kod

<%
email=request.form("txtUser")

Set test=objConn.Execute("Select * From tblUsers where email='"&email&"'")

If not test.eof Then
response.redirect "/lostPass.asp?error=noMail"
Else

Dim sTo 
Dim sTextBody 
Dim objMail
Dim email
password=test("password")

sTo = email
sFrom = "info@webbisen.com"
sSubject = "Förlorat lösenord"
sTextBody = comments

'Create the mail object and set key properties
Set objMail = Server.CreateObject("CDO.Message")

objMail.From = sFrom 
objMail.To = sTo 
objMail.Subject = sSubject
objMail.TextBody = "Ditt lösenord är " &password

'Send the email and clean up
objMail.Send 
Set objMail = Nothing
response.redirect "/lostPass.asp?success=sent"
End If%>
Medlem sedan juni 200032 969 inlägg
#9

Felmeddelandet betyder normalt att ingen post i tabellen motsvarar dina villkor du ställer i SQL-frågan.

Om det är raden password=test("password") som det hänvisas till så förstår jag inte varför det blir fel, eftersom den ligger på rätt ställe, och du kontrollerar ju att recordsetet inte är tomt. Har du någon annan kod högre upp? Vilken är rad 15?

Medlem sedan feb. 20032 027 inlägg
#10

@nders skrev:

Felmeddelandet betyder normalt att ingen post i tabellen motsvarar dina villkor du ställer i SQL-frågan.

Om det är raden password=test("password") som det hänvisas till så förstår jag inte varför det blir fel, eftersom den ligger på rätt ställe, och du kontrollerar ju att recordsetet inte är tomt. Har du någon annan kod högre upp? Vilken är rad 15?

Rad 15 är just den raden och den kod jag postade är all kod på den sidan

Medlem sedan juni 200032 969 inlägg
#11

Ah, nu ser jag vad du gjort för fel. =)

If not test.eof Then

Ska vara:

If test.eof Then

mvh

Medlem sedan feb. 20032 027 inlägg
#12

@nders skrev:

Ah, nu ser jag vad du gjort för fel. =)

If not test.eof Then

Ska vara:

If test.eof Then

mvh

Stämmer, hade så från början men då hade jag blandat ihop mailadresserna som är sparat i db så ja trodde att det var till fel adress så jag bytte i koden :-)

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