webForumDet fria alternativet

Glömt Lösenord

ASP

9 svar · 288 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Frågan#1

Hej
Har en funktion som hämtar en användares lösenord och skickar det med jmail. Det funkar hur fint som helst, förutom på en sak. Om en användare inte finns så ser det ut som att mailet skickats ändå.

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/members.mdb") &" "

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From anvandare"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

Do Until RecSet.EOF

	If RecSet("namn") = Request.Form("username") Then

epost = RecSet("e_post")
namn = RecSet("namn")
losen = RecSet("losen")

Set jmail = Server.CreateObject("JMail.Message")
 
jmail.AddRecipient "" & epost & ""
jmail.From = "support@qimen.mine.nu"
Jmail.Priority = 1
jmail.Subject = "Ditt borttappade lösenord"
jmail.appendHTML "<font face=verdana size=1>"
jmail.appendHTML "Hej! <br><br>"
jmail.appendHTML "Här kommer ditt borttappade lösenord till PixelWorld!<br><br><br>"
jmail.appendHTML "<b>Anv. namn: </b> " & namn & "<br>"
jmail.appendHTML "<b>Lösenord: </b> " & losen & "<br>" 
jmail.appendHTML "</font>"
jmail.Send( "qimen.mine.nu" )

End if
RecSet.MoveNext
Loop

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Session("meddelande") = "Ett mail med anv. namn och lösenord har skickats till dig!"
Response.Redirect "losenord_skickat.asp"
%>

Hur gör jag så att om en användare inte finns så kommer man tillbaka till sidan losenord.asp och med ett session meddelande?

Medlem sedan mars 20032 667 inlägg
#2

Varför hämtar du alla poster när du enbart behöver en.

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/members.mdb") &" "

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From anvandare where namn = '" & Request.Form("username")  & "'"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

if RecSet.EOF then

response.write "Ingen användare med det namnet fanns"	

else

epost = RecSet("e_post")
namn = RecSet("namn")
losen = RecSet("losen")

Set jmail = Server.CreateObject("JMail.Message")
 
jmail.AddRecipient "" & epost & ""
jmail.From = "support@qimen.mine.nu"
Jmail.Priority = 1
jmail.Subject = "Ditt borttappade lösenord"
jmail.appendHTML "<font face=verdana size=1>"
jmail.appendHTML "Hej! <br><br>"
jmail.appendHTML "Här kommer ditt borttappade lösenord till PixelWorld!<br><br><br>"
jmail.appendHTML "<b>Anv. namn: </b> " & namn & "<br>"
jmail.appendHTML "<b>Lösenord: </b> " & losen & "<br>" 
jmail.appendHTML "</font>"
jmail.Send( "qimen.mine.nu" )

Session("meddelande") = "Ett mail med anv. namn och lösenord har skickats till dig!"
Response.Redirect "losenord_skickat.asp"

End if

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
%>
Medlem sedan jan. 20032 285 inlägg
#3
<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/members.mdb")

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From anvandare Where namn = '" & Request.Form("username") & "'"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

If RecSet.EOF Then
  Session("fel") = "Medlemsnamnet finns inte"
  Server.Transfer("losenord.asp")
Else
  Do Until RecSet.EOF 
    If RecSet("namn") = Request.Form("username") Then

      epost = RecSet("e_post")
      namn = RecSet("namn")
      losen = RecSet("losen")

      Set jmail = Server.CreateObject("JMail.Message")
 
      jmail.AddRecipient "" & epost & ""
      jmail.From = "support@qimen.mine.nu"
      Jmail.Priority = 1
      jmail.Subject = "Ditt borttappade lösenord"
      jmail.appendHTML "<font face=verdana size=1>"
      jmail.appendHTML "Hej! <br><br>"
      jmail.appendHTML "Här kommer ditt borttappade lösenord till PixelWorld!<br><br><br>"
      jmail.appendHTML "<b>Anv. namn: </b> " & namn & "<br>"
      jmail.appendHTML "<b>Lösenord: </b> " & losen & "<br>" 
      jmail.appendHTML "</font>"
      jmail.Send( "qimen.mine.nu" )
    End if
    RecSet.MoveNext
  Loop
End If

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Session("meddelande") = "Ett mail med anv. namn och lösenord har skickats till dig!"
Response.Redirect "losenord_skickat.asp"
%>

:) Borde väl funka?

Medlem sedan juni 20015 009 inlägg
#4

Men alltså jag måste ha det i en session, för som det är nu, om en användare inte finns så kommer man ändå till sidan där står att ett mail skickats.

Medlem sedan mars 20032 667 inlägg
#5

Qimen skrev:

Men alltså jag måste ha det i en session, för som det är nu, om en användare inte finns så kommer man ändå till sidan där står att ett mail skickats.

med vilken kod då? med min kod ovan är det en omöjlighet. ;)

Medlem sedan juni 20015 009 inlägg
#6

Men som jag hade innan så skickades man vidare till losenord_skickat.asp när ett mail skickats. Men om en användare inte finns så vill jag att man t.ex skickas till losenord_fel.asp

Medlem sedan jan. 20032 285 inlägg
#7

Ja...?

<%
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/members.mdb")

Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From anvandare Where namn = '" & Request.Form("username") & "'"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

If RecSet.EOF Then
  Session("fel") = "Medlemsnamnet finns inte"
  Server.Transfer("losenord_fel.asp")
Else
  Do Until RecSet.EOF 
    If RecSet("namn") = Request.Form("username") Then

      epost = RecSet("e_post")
      namn = RecSet("namn")
      losen = RecSet("losen")

      Set jmail = Server.CreateObject("JMail.Message")
 
      jmail.AddRecipient "" & epost & ""
      jmail.From = "support@qimen.mine.nu"
      Jmail.Priority = 1
      jmail.Subject = "Ditt borttappade lösenord"
      jmail.appendHTML "<font face=verdana size=1>"
      jmail.appendHTML "Hej! <br><br>"
      jmail.appendHTML "Här kommer ditt borttappade lösenord till PixelWorld!<br><br><br>"
      jmail.appendHTML "<b>Anv. namn: </b> " & namn & "<br>"
      jmail.appendHTML "<b>Lösenord: </b> " & losen & "<br>" 
      jmail.appendHTML "</font>"
      jmail.Send( "qimen.mine.nu" )
    End if
    RecSet.MoveNext
  Loop
End If

RecSet.Close
Connect.Close
Set RecSet = nothing
Set Connect = nothing
Session("meddelande") = "Ett mail med anv. namn och lösenord har skickats till dig!"
Response.Redirect "losenord_skickat.asp"
%>
Medlem sedan mars 20032 667 inlägg
#8

Databasen är mycket bättre på att selectrera data än VB. Varför loopar ni? Är inte namnet unikt?

Medlem sedan juni 20015 009 inlägg
#9

Sebbe: din kod funkar utmärkt ;)

Medlem sedan jan. 20032 285 inlägg
#10

K@llen skrev:

Databasen är mycket bättre på att selectrera data än VB. Varför loopar ni? Är inte namnet unikt?

Ingen aning om varför jag inte tog bort loopen... Orkade väl helt enkelt inte ;)

302 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
158 ms — hämta tråd, inlägg och bilagor (db)
141 ms — ändringar (db)