當(dāng)前位置:首頁文章首頁 IT學(xué)院 IT技術(shù)

教你利用ASP實現(xiàn)會員系統(tǒng)“找回密碼”功能

作者:  來源:  發(fā)布時間:2011-6-9 11:30:51  點擊:

這篇文章跟大家一起分享學(xué)習(xí)的是關(guān)于如何利用ASP實現(xiàn)會員系統(tǒng)“找回密碼”功能,正在建設(shè)個人網(wǎng)站的朋友可以進來看看。

會員注冊以后,有些會員可能會遇到忘記登錄密碼的問題,因而網(wǎng)站具備“找回密碼”功能不僅是必須的,而且是服務(wù)貼心的具體表現(xiàn)之一。在此,levitian寫了一個“找回密碼”的小教程,供初學(xué)動態(tài)網(wǎng)站設(shè)計的朋友們借鑒,希望對大家有所幫助。
  
  ●相關(guān)說明:

  ·levitian假設(shè)您已經(jīng)作好了會員系統(tǒng),接下來準備作“找回密碼”功能但還沒有作,或者您不知道怎么作這個功能,那么剛好可以看看本教程。

  ·國內(nèi)大多數(shù)服務(wù)器都支持Jmail郵件組件,因而levitian就使用該組件實現(xiàn)郵件發(fā)送功能;

  ·傳統(tǒng)的“找回密碼”功能要使用“密碼取回問題”和“密碼取回答案”等字段,但levitian認為大可不必這么繁瑣,反正最終目的是將密碼發(fā)進用戶的郵箱里,而用戶的郵箱只有自己可以收發(fā)郵件,那么以上這兩個字段就可以省略了。實際上只要填上用戶名和自己的郵箱,按“找回密碼”,啟動Jmail郵件組件把密碼發(fā)至用戶郵箱--就這么簡單!

  ·levitian用的是Dreamweaver MX,您用Dreamweaver UltraDev當(dāng)然也沒問題了。

  ·本系統(tǒng)主要用到了DW服務(wù)器行為中的“登錄用戶”和“插入”菜單中的“文件頭標簽”中的“刷新”子功能。用戶不知道登錄密碼沒關(guān)系,他可以用自己的用戶名和郵箱找回密碼,但如果該用戶的郵箱是假的(胡填的),或根本沒有在自己的注冊資料中填郵箱,或者他輸入了別人的郵箱,那么他也就無法進入找回密碼的頁面,當(dāng)然也就無法找回自己的密碼了~
  
  ●步驟一:制作相關(guān)的ASP頁面

  我們需要增加三個頁面,一個頁面是“找回密碼登錄頁面”,這里我命名為getbackpass.asp;另一個是“密碼發(fā)送成功報告頁面”,這里我命名為getbackpassok.asp;第三個頁面為郵箱不存在或用戶名不正確時顯示錯誤信息的頁面,這里我命名為getbackpassfail.asp。
  
  ●步驟二:在會員登錄頁面增加“找回密碼”文本型鏈接或圖片型鏈接

  在會員登錄界面中輸入文本“找回密碼”或者插入一張圖片,將其鏈接至找回密碼登錄頁面getbackpass.asp;如果您想把“找回密碼”鏈接放在其它頁面,當(dāng)然沒問題了。
  
  ●步驟三:制作找回密碼登錄頁面getbackpass.asp

  ·打開找回密碼登錄頁面getbackpass.asp,建立表單域,插入兩個文本域,第一個命名為MemberName,第二個命名為MemberEmail(您的會員信息數(shù)據(jù)表中的會員姓名字段和會員郵箱字段如不是MemberName和MemberEmail,請修改成相應(yīng)的字段名),接下來插入一個“按鈕”,命名為“取回密碼”。

  ·打開服務(wù)器行為面板,點擊“+”,選擇“用戶身份驗證”中的“登錄用戶”,在“登錄用戶”面板中,我主要說說以下項目的設(shè)置:

  使用連接驗證:我們選擇已經(jīng)定義好的DSN連接
  表格:我們選擇會員注冊信息表單
  用戶名列:我們選擇MemberName
  密碼列:我們選擇MemberEmail
  如果登錄成功轉(zhuǎn)到:我們選擇getbackpassok.asp
  如果登錄失敗轉(zhuǎn)到:我們選擇getbackpassfail.asp
  基于以下項限制訪問:我們選擇“用戶名和密碼”
  OK!可以按“確定”按鈕了。

  ·加入表單驗證代碼

  為防止用戶不填表單就登錄,可加入以下代碼,讓用戶必須填寫內(nèi)容:

  將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()"

  這樣,表單驗證就作好了。
  
  ●步驟四:制作密碼發(fā)送成功報告頁面getbackpassok.asp

  ·打開密碼發(fā)送成功報告頁面getbackpassok.asp,輸入文本“密碼已發(fā)至您的郵箱中,請查詢密碼后登錄本站!”

  ·建立數(shù)據(jù)集member,您當(dāng)然可以用其它的數(shù)據(jù)集名稱:

  連接:一欄選擇您定義的DSN連接
  表格:一欄選擇會員信息數(shù)據(jù)表member
  列:一欄選定會員ID、用戶名、密碼和郵箱這四個字段
  篩選:MemberName=階段變量MM_Username
  排序:不用填

  至此,數(shù)據(jù)集就建立好了。在篩選里,我們之所以用階段變量(Session Variable),是因為我們需要篩選出找回密碼的用戶。使用DW服務(wù)器行為的“登錄用戶”行為以后,登錄者的名稱(數(shù)據(jù)庫中的MemberName字段)就自動保存在名為MM_Username的Session變量中。這們使用“MemberName=階段變量MM_Username”作為篩選條件,自然可以篩選出想找回密碼的用戶了。

  ·接下來我們加入Jmail郵件發(fā)送代碼。將Dreamweaver設(shè)計界面切換到顯示代碼視圖,找見如下代碼:

  <%
  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
  %>
  這是數(shù)據(jù)集形成的代碼,然后在倒數(shù)第二行,即%>上一行,插入以下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 = "尊敬的用戶您好,首先感謝您使用我們的服務(wù)!." & 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 取回您的密碼,謝謝您使用本系統(tǒng)。" & vbCrLf
  JMail.Body = JMail.Body & "順祝商祺!" & vbCrLf
  JMail.Body = JMail.Body & "譯媒藝術(shù)咨詢有限公司"
  JMail.Priority = 3
  JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
  JMail.Execute
  
  以上代碼簡單說明如下:

相關(guān)軟件

文章評論

軟件按字母排列: 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