Har gjort ett script där användaren kan
logga in på sidan med genom att fylla i sin email address o ett valfritt password.
Email addressen o det valfria Passwordet
lagras då i databasen.
Men om jag vill att användaren ska kunna få sitt password mailat till sig, om t.ex. han/hon har glömt bort vad dom en gång i tiden valde för password, hur göt man då??
Först och främst måste du ha en mailkomponent installerad på servern som du kör sidan på.
Sen får du skapa en sida som hämtar värdena från din databas där mail adressen i databasen är samma som den man anger i ett formulär.
när den är hämtad så får du göra en kod snutt som skickar iväg mailet och hur denna kod snutt ska se ut är helt beroende på vilken mail komponent du använder.
*hoppas du förstår vad jag menar*
*är medveten om att jag har förklarat dåligt*
Detta har disskuterats för, i alla fall jmail osv. Du får väll helt enkelt göra så att om användaren trycker på en knapp, tar du ut hans mail från databasen samt lösenord. sen Koller i alla inlägg om jmail (tror det finns om just detta faktiskt) hur du ska programmera att han skickar till den mailen han har..
Prova så hjälps vi åt.. ;) själv lite intresserad av att göra en sådan här.. **he he**
------------------
1 Man, 1 Million dead, The odds are just about even - Ash
Jag hittade följande kod på nätet. Tyvärr får jag inte själva lösenordet i mailet utan endast texten: "*** THIS MESSAGE HAS BEEN AUTOMATICALLY GENERATED ***" Någonstans går det snett. Men det skall vara på rätt väg.
Tabellen heter users
Fälten heter email, users och pass.
Kanske ngn kan se här vad som saknas.
<%@Language=VBScript%>
<%Response.Buffer=True%>
<html>
<body>
<%
'grab the value entered in the form, if no value was entered then show the form
email = Trim(Request.Form("email"))
If Len(email) < 1 Then
%>
<center><font color="blue">Forget your password?</font><p>
<table>
<form method="post">
<tr><td><center>Please Enter Your <b>Email Address</b></center></td></tr>
<tr><td><center><input type="text" name="email"></center></td></tr>
<tr><td><center><input type="submit" value="Submit"></center></td></tr>
</table>
</form>
</center>
<%
'otherwise, query the database and grab the password associated with the value entered in the form
Else
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=D:\InetPub\wwwroot\users.mdb"
'<!--#include file="connect.asp"-->
'Set Conn = Server.CreateObject("ADODB.Connection")
'Conn.Open "Driver={SQL Server};Server=127.0.0.1;Database=plat;Uid=plat;Pwd=plat;"
sql = "SELECT email, pass FROM users WHERE email = '"&email&"'"
Set RS = Conn.Execute(sql)
'if the value does not match any record in the database then tell the user
If RS.EOF Then
Response.write "<p><br><br><br><center>Invalid Email Address!</center>"
'otherwise, a match is found
Else
'grab the password from the database
password = RS("pass")
'call the SendPW subroutine passing the email address and the password as arguments
Call SendPW(email, pass)
Response.Write "<p><br><br><br><center>Your Password has been sent!</center>"
RS.Close
Conn.Close
Set RS = Nothing
Set Conn = Nothing
End If
End If
'here is the subroutine that actually sends the email using CDONTS.
Sub SendPW(email, pass)
Set cdoMail = Server.CreateObject("CDONTS.NewMail")
cdoMail.From = "EMAIL@DOMÄN.COM"
cdoMail.To = email
cdoMail.Subject = "Your requested password."
cdoMail.Body = pass & vbcrlf & vbcrlf & vbcrlf _
& "*** THIS MESSAGE HAS BEEN AUTOMATICALLY GENERATED ***"
cdoMail.Send
Set cdoMail = Nothing
End Sub
%>
</body>
</html>
Du kan ju börja med att byta avsändare från "EMAIL@DOMÄN.COM" till något mer förtroendeingivande
Sen fölrutsätter koden att du har en databas med fälten
[users] <- tabell
pass <- post, text 20 tecken, tillåt nollängd
email <- post, text 50 tecken, tillåt nollängd
Du har även döpt databasfilen till "users.mdb" vilket kan vara lite förvirrande om du är ny till detta. Den KAN heta "users.mdb" men den kan lika gärna heta "community.mdb".
------------------
Never underestimate your opponents.
Du kan ju börja med att byta avsändare från "EMAIL@DOMÄN.COM" till något mer förtroendeingivande
Det har jag på mitt test.
Mailet kommer utan problem. Problemet är att det inte står någonting alls där "pass" är tänkt att stå.
Sen fölrutsätter koden att du har en databas med fälten
[users] <- tabell
pass <- post, text 20 tecken, tillåt nollängd
email <- post, text 50 tecken, tillåt nollängd
Ja databasen heter users, tabellen heter users samt att fälten heter pass och email.
Nu funkar det. Här är en kod för att få glömda lösenord skickade till emailen.
I exemplet heter:
Databasen=users
Tabellen=users
Fälten=email och pass
<%@Language=VBScript%>
<%Response.Buffer=True%>
<html>
<body>
<%
'grab the value entered in the form, if no value was entered then show the form
email = Trim(Request.Form("email"))
If Len(email) < 1 Then
%>
<center><font color="blue">Forget your password?</font><p>
<table>
<form method="post">
<tr><td><center>Please Enter Your <b>Email Address</b></center></td></tr>
<tr><td><center><input type="text" name="email"></center></td></tr>
<tr><td><center><input type="submit" value="Submit"></center></td></tr>
</table>
</form>
</center>
<%
'otherwise, query the database and grab the password associated with the value entered in the form
Else
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=D:\InetPub\wwwroor\users.mdb"
sql = "SELECT pass, email FROM users WHERE email = '"&email&"'"
Set RS = Conn.Execute(sql)
'if the value does not match any record in the database then tell the user
If RS.EOF Then
Response.write "<p><br><br><br><center>Invalid Email Address!</center>"
'otherwise, a match is found
Else
'grab the password from the database
pass = RS("pass")
'call the SendPW subroutine passing the email address and the password as arguments
Call SendPW(pass, email)
Response.Write "<p><br><br><br><center>Your Password has been sent!</center>"
RS.Close
Conn.Close
Set RS = Nothing
Set Conn = Nothing
End If
End If
'here is the subroutine that actually sends the email using CDONTS.
Sub SendPW(pass, email)
Set cdoMail = Server.CreateObject("CDONTS.NewMail")
cdoMail.From = "DIN@EMAIL@DOMÄN.COM"
cdoMail.To = email
cdoMail.Subject = "Your requested password."
cdoMail.Body = pass & vbcrlf & vbcrlf & vbcrlf _
& "*** THIS MESSAGE HAS BEEN AUTOMATICALLY GENERATED ***"
cdoMail.Send
Set cdoMail = Nothing
End Sub
%>
</body>
</html>