Qimen Medlem sedan juni 2001 5 009 inlägg Frågan 29 mars 2003 21:57 #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?
K K@llen Medlem sedan mars 2003 2 667 inlägg 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
%>
S Sebbe Medlem sedan jan. 2003 2 285 inlägg <%
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?
Qimen Medlem sedan juni 2001 5 009 inlägg 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.
K K@llen Medlem sedan mars 2003 2 667 inlägg
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. ;)
Qimen Medlem sedan juni 2001 5 009 inlägg 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
S Sebbe Medlem sedan jan. 2003 2 285 inlägg 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"
%>
K K@llen Medlem sedan mars 2003 2 667 inlägg Databasen är mycket bättre på att selectrera data än VB. Varför loopar ni? Är inte namnet unikt?
Qimen Medlem sedan juni 2001 5 009 inlägg Sebbe: din kod funkar utmärkt ;)
S Sebbe Medlem sedan jan. 2003 2 285 inlägg
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 ;)