当前位置:首页文章首页 IT学院 IT技术

教你利用ASP实现会员系统“找回密码”功能

作者:  来源:  发布时间:2011-6-9 11:30:51  点击:

这篇文章跟大家一起分享学习的是关于如何利用ASP实现会员系统“找回密码”功能,正在建设个人网站的朋友可以进来看看。

会员注册以后,有些会员可能会遇到忘记登录密码的问题,因而网站具备“找回密码”功能不仅是必须的,而且是服务贴心的具体表现之一。在此,levitian写了一个“找回密码”的小教程,供初学动态网站设计的朋友们借鉴,希望对大家有所帮助。
  
  ●相关说明:

  ·levitian假设您已经作好了会员系统,接下来准备作“找回密码”功能但还没有作,或者您不知道怎么作这个功能,那么刚好可以看看本教程。

  ·国内大多数服务器都支持Jmail邮件组件,因而levitian就使用该组件实现邮件发送功能;

  ·传统的“找回密码”功能要使用“密码取回问题”和“密码取回答案”等字段,但levitian认为大可不必这么繁琐,反正最终目的是将密码发进用户的邮箱里,而用户的邮箱只有自己可以收发邮件,那么以上这两个字段就可以省略了。实际上只要填上用户名和自己的邮箱,按“找回密码”,启动Jmail邮件组件把密码发至用户邮箱--就这么简单!

  ·levitian用的是Dreamweaver MX,您用Dreamweaver UltraDev当然也没问题了。

  ·本系统主要用到了DW服务器行为中的“登录用户”和“插入”菜单中的“文件头标签”中的“刷新”子功能。用户不知道登录密码没关系,他可以用自己的用户名和邮箱找回密码,但如果该用户的邮箱是假的(胡填的),或根本没有在自己的注册资料中填邮箱,或者他输入了别人的邮箱,那么他也就无法进入找回密码的页面,当然也就无法找回自己的密码了~
  
  ●步骤一:制作相关的ASP页面

  我们需要增加三个页面,一个页面是“找回密码登录页面”,这里我命名为getbackpass.asp;另一个是“密码发送成功报告页面”,这里我命名为getbackpassok.asp;第三个页面为邮箱不存在或用户名不正确时显示错误信息的页面,这里我命名为getbackpassfail.asp。
  
  ●步骤二:在会员登录页面增加“找回密码”文本型链接或图片型链接

  在会员登录界面中输入文本“找回密码”或者插入一张图片,将其链接至找回密码登录页面getbackpass.asp;如果您想把“找回密码”链接放在其它页面,当然没问题了。
  
  ●步骤三:制作找回密码登录页面getbackpass.asp

  ·打开找回密码登录页面getbackpass.asp,建立表单域,插入两个文本域,第一个命名为MemberName,第二个命名为MemberEmail(您的会员信息数据表中的会员姓名字段和会员邮箱字段如不是MemberName和MemberEmail,请修改成相应的字段名),接下来插入一个“按钮”,命名为“取回密码”。

  ·打开服务器行为面板,点击“+”,选择“用户身份验证”中的“登录用户”,在“登录用户”面板中,我主要说说以下项目的设置:

  使用连接验证:我们选择已经定义好的DSN连接
  表格:我们选择会员注册信息表单
  用户名列:我们选择MemberName
  密码列:我们选择MemberEmail
  如果登录成功转到:我们选择getbackpassok.asp
  如果登录失败转到:我们选择getbackpassfail.asp
  基于以下项限制访问:我们选择“用户名和密码”
  OK!可以按“确定”按钮了。

  ·加入表单验证代码

  为防止用户不填表单就登录,可加入以下代码,让用户必须填写内容:

  将DW切换到源代码视图,首先,将以下代码加入<head> </head>之间:
  
  <script language="java script">
  <!--
  function checkdata() {
  if (document.form1.MemberName.value=="") {
  window.alert ("请输入用户名 !")
  return false
  }
  if (document.form1.MemberEmail.value=="") {
  window.alert ("请输入您的邮箱 !")
  return false
  }
  return true
  }
  //-->
  </script>
  
  接下来,在<form>标签里插入以下代码:onSubmit="return checkdata()"

  这样,表单验证就作好了。
  
  ●步骤四:制作密码发送成功报告页面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
  
  以上代码简单说明如下:

文章评论

软件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z