asp会员系统如何实现“忘记密码”(2)
作者:levitian 时间:2007-09-19 12:17:00
●步骤四:制作密码发送成功报告页面getbackpassok.asp
·打开密码发送成功报告页面getbackpassok.asp,输入文本“密码已发至您的邮箱中,请查询密码后登录本站!”
·建立数据集member,您当然可以用其它的数据集名称:
连接:一栏选择您定义的DSN连接
表格:一栏选择会员信息数据表member
列:一栏选定会员ID、用户名、密码和邮箱这四个字段
筛选:MemberName=阶段变量MM_Username
排序:不用填
至此,数据集就建立好了。在筛选里,我们之所以用阶段变量(Session Variable),是因为我们需要筛选出找回密码的用户。使用DW服务器行为的“登录用户”行为以后,登录者的名称(数据库中的MemberName字段)就自动保存在名为MM_Username的Session变量中。这们使用“MemberName=阶段变量MM_Username”作为筛选条件,自然可以筛选出想找回密码的用户了。
·接下来我们加入Jmail邮件发送代码。将Dreamweaver设计界面切换到显示代码视图,找见如下代码:
<%
Dim member__MMColParam
member__MMColParam = "1"
If (Session("MM_Username") <> "") Then
member__MMColParam = Session("MM_Username")
End If
%>
<%
set member = Server.CreateObject("ADODB.Recordset")
member.ActiveConnection = MM_spsguavaskirtdate_STRING
member.Source = "SELECT MemberID, MemberName, Password, MemberEmail FROM Member WHERE MemberName = ’" + Replace(member__MMColParam, "’", "’’") + "’"
member.CursorType = 0
member.CursorLocation = 2
member.LockType = 3
member.Open()
member_numRows = 0
%>
这是数据集形成的代码,然后在倒数第二行,即%>上一行,插入以下Jmail组件代码:
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "mail.emaichina.net:25"
JMail.Sender = "emai@emaichina.net"
JMail.Subject = "您的登录密码"
JMail.AddRecipient(member.Fields.Item("MemberEmail").Value)
JMail.Body = "尊敬的用户您好,首先感谢您使用我们的服务!." & vbCrLf & vbCrLf
JMail.Body = JMail.Body & "您的用户名是:" &(member.Fields.Item("MemberName").Value) & vbCrLf
JMail.Body = JMail.Body & "您的注册邮箱是:" &(member.Fields.Item("MemberEmail").Value) & vbCrLf
JMail.Body = JMail.Body & "您的登录密码是:" &(member.Fields.Item("Password").Value) & vbCrLf
JMail.Body = JMail.Body & "请妥善保管您的密码,如再次遗忘密码,请登录至http://www.emaichina.net/member/memberpage/getbackpass.asp 取回您的密码,谢谢您使用本系统。" & vbCrLf
JMail.Body = JMail.Body & "顺祝商祺!" & vbCrLf
JMail.Body = JMail.Body & "译媒艺术咨询有限公司"
JMail.Priority = 3
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Execute
以上代码简单说明如下:
JMail.ServerAddress= 后面填上您的SMTP服务器,如"mail.emaichina.net:25,千万别忘了填端口号:25;
JMail.Sender= 后面填上您的邮箱,如emai@emaichina.net,请确保此邮箱可以正常收发邮件;
JMail.Subject = 后面输入信件标题,如"您的登录密码",切记,文本之间一定要加上“"”;
JMail.AddRecipient后面插入数据集member中的邮箱字段,如(member.Fields.Item("MemberEmail").Value);
JMail.Body =后面输入信件的称谓部分,如: "尊敬的用户您好,首先感谢您使用我们的服务!." & vbCrLf & vbCrLf
JMail.Body = 后面开始输入信件内容,如果是动态内容,那么插入数据集中的相应字段,如果是静态内容,则直接输入文本即可。每一段使用一个JMail.Body =,结尾都加上vbCrLf,有多少段就拷贝粘贴多少个JMail.Body =,这样就可以写出来一封完整的找回密码回复信。
关于vbCrLf说明:vbCrLf的作用是换行,您想空一行就加一个 vbCrLf,想空两行就加两个vbCrLf…但在vbCrLf和vbCrLf之间一定要加“&”符号将它们隔开,否则会出现错误提示。
●制作显示错误信息页面getbackpassfail.asp
如果用户名、密码错误或用户名和密码根本不存在,那么系统会转到显示错误信息页面,并且在2秒后自动返回“找回密码登录页面”。下面是制作方法:
打开getbackpassfail.asp,在页面中输入文本“您的邮箱不存在,请确认您在注册资料中填写了邮箱! ”,然后,打开DW软件菜单中的→插入”→“文件头标签”→“刷新”,“延迟”填上2,就是2秒,如果您想让页面保持时间更长,也可以填3秒、5秒甚至10秒;“操作”选择“转到URL”,填上getbackpass.asp,这样这个页面2秒钟后就会自动回到“找回密码登录页面”了。
OK!这个页面就做好了,很简单!
●测试这个找回密码系统
以上系统作好后,您可以测试一下。如果您在本地测试,并且不是用的Win98操作系统,那么需要安装Jmail邮件组件(这个组件可去下载网站下载,是免费的);如果您用的是Win98操作系统或您的计算机中没有安装Jmail邮件组件,那么,可把这个系统上传到支持Jmail邮件组件的服务器空间上,试着找回密码,如果没问题,说明您成功了。如果有问题,请仔细查看制作步骤或代码有没有错误,这里祝您好运!
说明:学会“找回密码系统”的制作方法后,您可以举一反三作一个会员注册后的邮件自动回复系统,也相当简单,大家可以试一下。