亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP結合jQuery實現找回密碼

2024-05-04 23:38:00
字體:
來源:轉載
供稿:網友

本文將使用PHP+Mysql+jQuery來實現一個密碼找回的功能,分享給大家思路和具體的代碼,有需要的小伙伴可以參考下。

通常所說的密碼找回功能不是真的能把忘記的密碼找回,因為我們的密碼是加密保存的,一般開發者會在驗證用戶信息后通過程序生成一個新密碼或者生成一個特定的鏈接并發送郵件到用戶郵箱,用戶從郵箱鏈接到網站的重置密碼模塊重新設置新密碼。

當然現在有的網站也有手機短信的方式找回密碼,原理就是通過發送驗證碼來驗明正身,和發送郵件驗證一樣,最終還是要通過重置密碼來完成找回密碼的流程。

一般步驟是:

1.表單輸入注冊時的郵箱;

2.驗證用戶郵箱是否正確,如果用戶郵箱不存在網站的用戶表中,則提示用戶郵箱未注冊;

3.發送郵件,如果用戶郵箱確實存在用戶表中,則組合用于驗證用戶信息的字符串,并構造URL發送到用戶郵箱中;

4.用戶登錄郵箱收取郵件,點擊URL鏈接到網站驗證程序;

5.網站程序通過用戶請求的字符串查詢本地用戶表,比對用戶信息是否正確;

6.如果正確則轉到重置密碼頁面重新設置新密碼,反之則提示用戶驗證無效。

HTML

我們在找回密碼的頁面上放置一個要求用戶輸入注冊時所用的郵箱,然后提交前臺js來處理交互。

 

 
  1. <p><strong>輸入您注冊的電子郵箱,找回密碼:</strong></p>  
  2. <p><input type="text" class="input" name="email" id="email"><span id="chkmsg"></span></p>  
  3. <p><input type="button" class="btn" id="sub_btn" value="提 交"></p>  

jQuery

當用戶輸入完郵箱并點擊提交后,jQuery先驗證郵箱格式是否正確,如果正確則通過向后臺sendmail.php發送Ajax請求,sendmail.php負責驗證郵箱是否存在和發送郵件,并會返回相應的處理結果給前臺頁面,請看jQuery代碼:

 

 
  1. $(function(){  
  2. $("#sub_btn").click(function(){  
  3. var email = $("#email").val();  
  4. var preg = /^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*/; //匹配Email  
  5. if(email=='' || !preg.test(email)){  
  6. $("#chkmsg").html("請填寫正確的郵箱!");  
  7. }else{  
  8. $("#sub_btn").attr("disabled","disabled").val('提交中..').css("cursor","default");  
  9. $.post("sendmail.php",{mail:email},function(msg){  
  10. if(msg=="noreg"){  
  11. $("#chkmsg").html("該郵箱尚未注冊!");  
  12. $("#sub_btn").removeAttr("disabled").val('提 交').css("cursor","pointer");  
  13. }else{  
  14. $(".demo").html("<h3>"+msg+"</h3>");  
  15. }  
  16. });  
  17. }  
  18. });  
  19. })  

以上使用的jQuery代碼很方便簡潔的完成了前端交互操作,如果您有一定的jQuery基礎,那上面的代碼一目了然,不多解釋。

當然別忘了在頁面中加載jQuery庫文件,有的同學經常問我說從vevb.com下載了demo怎么用不了,那80%是jquery或者其他文件加載路徑錯了導致沒加載必要的文件。

PHP

sendmail.php需要驗證Email是否存在系統用戶表中,如果有,則讀取用戶信息,將用戶id、用戶名和密碼驚醒md5加密生成一個特別的字符串作為找回密碼的驗證碼,然后構造URL。同時我們為了控制URL鏈接的時效性,將記錄用戶提交找回密碼動作的操作時間,最后調用郵件發送類發送郵件到用戶郵箱,發送郵件類smtp.class.php已經打包好,請下載。

 

 
  1. include_once("connect.php");//連接數據庫  
  2.  
  3. $email = stripslashes(trim($_POST['mail']));  
  4.  
  5. $sql = "select id,username,password from `t_user` where `email`='$email'";  
  6. $query = mysql_query($sql);  
  7. $num = mysql_num_rows($query);  
  8. if($num==0){//該郵箱尚未注冊!  
  9. echo 'noreg';  
  10. exit;  
  11. }else{  
  12. $row = mysql_fetch_array($query);  
  13. $getpasstime = time();  
  14. $uid = $row['id'];  
  15. $token = md5($uid.$row['username'].$row['password']);//組合驗證碼  
  16. $url = "http://www.49028c.com/demo/resetpass/reset.php?email=".$email."  
  17. &token=".$token;//構造URL  
  18. $time = date('Y-m-d H:i');  
  19. $result = sendmail($time,$email,$url);  
  20. if($result==1){//郵件發送成功  
  21. $msg = '系統已向您的郵箱發送了一封郵件<br/>請登錄到您的郵箱及時重置您的密碼!';  
  22. //更新數據發送時間  
  23. mysql_query("update `t_user` set `getpasstime`='$getpasstime' where id='$uid '");  
  24. }else{  
  25. $msg = $result;  
  26. }  
  27. echo $msg;  
  28. }  
  29.  
  30. //發送郵件  
  31. function sendmail($time,$email,$url){  
  32. include_once("smtp.class.php");  
  33. $smtpserver = ""//SMTP服務器,如smtp.163.com  
  34. $smtpserverport = 25; //SMTP服務器端口  
  35. $smtpusermail = ""//SMTP服務器的用戶郵箱  
  36. $smtpuser = ""//SMTP服務器的用戶帳號  
  37. $smtppass = ""//SMTP服務器的用戶密碼  
  38. $smtp = new Smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass);  
  39. //這里面的一個true是表示使用身份驗證,否則不使用身份驗證.  
  40. $emailtype = "HTML"//信件類型,文本:text;網頁:HTML  
  41. $smtpemailto = $email;  
  42. $smtpemailfrom = $smtpusermail;  
  43. $emailsubject = "vevb.com - 找回密碼";  
  44. $emailbody = "親愛的".$email.":<br/>您在".$time."提交了找回密碼請求。請點擊下面的鏈接重置密碼  
  45. (按鈕24小時內有效)。<br/><a href='".$url."'target='_blank'>".$url."</a>";  
  46. $rs = $smtp->sendmail($smtpemailto, $smtpemailfrom, $emailsubject, $emailbody, $emailtype);  
  47.  
  48. return $rs;  
  49. }  

好了,這個時候你的郵箱將會收到一封來自helloweba的密碼找回郵件,郵件內容中有一個URL鏈接,點擊該鏈接到vevb.com的reset.php來驗證郵箱。

 

 
  1. include_once("connect.php");//連接數據庫  
  2.  
  3. $token = stripslashes(trim($_GET['token']));  
  4. $email = stripslashes(trim($_GET['email']));  
  5. $sql = "select * from `t_user` where email='$email'";  
  6.  
  7. $query = mysql_query($sql);  
  8. $row = mysql_fetch_array($query);  
  9. if($row){  
  10. $mt = md5($row['id'].$row['username'].$row['password']);  
  11. if($mt==$token){  
  12. if(time()-$row['getpasstime']>24*60*60){  
  13. $msg = '該鏈接已過期!';  
  14. }else{  
  15. //重置密碼...  
  16. $msg = '請重新設置密碼,顯示重置密碼表單,<br/>這里只是演示,略過。';  
  17. }  
  18. }else{  
  19. $msg = '無效的鏈接';  
  20. }  
  21. }else{  
  22. $msg = '錯誤的鏈接!';  
  23. }  
  24. echo $msg;  

reset.php首先接受參數email和token,然后根據email查詢數據表t_user中是否存在該Email,如果存在則獲取該用戶的信息,并且和sendmail.php中的token組合方式一樣構建token值,然后與url傳過來的token進行對比,如果當前時間與發送郵件時的時間相差超過24小時的,則提示“該鏈接已過期!”,反之,則說明鏈接有效,并且調轉到重置密碼頁面,最后就是用戶自己設置新密碼了。

小結:通過注冊郵箱驗證與本文郵件找回密碼,我們知道發送郵件在網站開發中的應用以及它的重要性,當然,現在也流行短信驗證應用,這個需要相關的短信接口對接就可以了。

最后,附上數據表t_user結構:

 

 
  1. CREATE TABLE `t_user` (  
  2. `id` int(11) NOT NULL auto_increment,  
  3. `username` varchar(30) NOT NULL,  
  4. `password` varchar(32) NOT NULL,  
  5. `email` varchar(50) NOT NULL,  
  6. `getpasstime` int(10) NOT NULL,  
  7. PRIMARY KEY (`id`)  
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一区二区三区免费观看| 久久视频精品在线| 欧美日韩国产综合视频在线观看中文| 日本精品久久中文字幕佐佐木| 97人人做人人爱| 中文字幕亚洲欧美日韩2019| 欧美在线视频免费观看| 亚洲电影免费在线观看| 九九热最新视频//这里只有精品| 久久久久久成人精品| 亚洲自拍小视频免费观看| 欧美国产乱视频| 国产精品久久久久久久久久小说| 亚洲视频在线观看免费| 国产欧美一区二区| 欧美在线播放视频| 欧美性感美女h网站在线观看免费| 97在线视频免费观看| 日韩中文字幕视频在线观看| 亚洲视频777| 国产丝袜高跟一区| 国内精品伊人久久| 国产成人午夜视频网址| 中文字幕精品www乱入免费视频| 亚洲电影中文字幕| 欧美福利视频在线| 亚洲欧洲视频在线| 欧美日韩国产色视频| 精品中文字幕视频| 国产精品第一区| 久久亚洲精品一区二区| 亚洲精选一区二区| 久久久免费在线观看| 欧美电影免费播放| 伊人成人开心激情综合网| 美女视频黄免费的亚洲男人天堂| 亚洲精品国产欧美| 成人a在线观看| 夜夜嗨av色一区二区不卡| 日日狠狠久久偷偷四色综合免费| 日本精品性网站在线观看| 伊人一区二区三区久久精品| 久久久国产精彩视频美女艺术照福利| 欧美极品第一页| 国产91色在线播放| 国产在线精品播放| 国产成人高清激情视频在线观看| 国产成人精品一区二区在线| 性色av一区二区三区在线观看| 高清欧美电影在线| 国产又爽又黄的激情精品视频| 91精品综合久久久久久五月天| 成人网在线免费观看| 国产专区精品视频| 久久精品国产一区| 欧美激情在线观看视频| 亚洲乱码av中文一区二区| 亚洲品质视频自拍网| 日韩电视剧免费观看网站| 国产69精品99久久久久久宅男| 中文字幕av一区二区三区谷原希美| 精品丝袜一区二区三区| 国产精品成人免费视频| 日韩av电影免费观看高清| 黑人极品videos精品欧美裸| 91豆花精品一区| 欧美视频在线观看 亚洲欧| 欧美黑人性生活视频| 另类色图亚洲色图| 91性高湖久久久久久久久_久久99| 欧美专区日韩视频| 欧美国产日韩一区二区| 国产精品人人做人人爽| 日韩最新中文字幕电影免费看| 久久中文字幕一区| 社区色欧美激情 | 亚洲人成电影网站色xx| 精品av在线播放| 91精品国产91久久久久| 欧美成人午夜激情| 日韩一区二区在线视频| 亚洲精品av在线播放| 日本欧美国产在线| 69久久夜色精品国产69乱青草| 国产日本欧美在线观看| 欧美大片免费观看| 成人久久一区二区| 亚洲天堂免费视频| 美日韩精品免费观看视频| 国产精品网站视频| 色综合久久88| 国产精品美女在线观看| 一区二区三区美女xx视频| 欧美日韩亚洲国产一区| 国产精品成人一区二区三区吃奶| 欧美成人高清视频| 欧美电影在线播放| 欧美成在线观看| 热久久这里只有精品| 色视频www在线播放国产成人| 日本中文字幕不卡免费| 午夜精品久久久久久99热软件| 中国人与牲禽动交精品| 日韩电影大全免费观看2023年上| 日韩美女在线播放| 中文字幕日韩欧美在线视频| 国产精品一久久香蕉国产线看观看| 色综合伊人色综合网站| 亚洲aa在线观看| 久久不射热爱视频精品| 日韩不卡在线观看| 色妞色视频一区二区三区四区| 亚洲国产成人在线播放| 久久天天躁狠狠躁夜夜躁2014| 午夜免费日韩视频| 日韩欧美国产黄色| 欧美性生交大片免网| 亚洲精品国产成人| 亚洲全黄一级网站| 亚洲精品一区二区三区不| 欧美夫妻性生活xx| 色综合老司机第九色激情| 精品女同一区二区三区在线播放| 国产精品福利无圣光在线一区| 欧美激情精品在线| 欧美日韩国产成人在线观看| 97精品国产97久久久久久免费| 日韩免费不卡av| 国产激情综合五月久久| 日韩成人在线播放| 国产综合福利在线| 欧美激情精品久久久久久免费印度| 国内偷自视频区视频综合| 日韩av一区二区在线| 亚洲精品国产综合区久久久久久久| 国产精品久久久久久亚洲调教| 俺去了亚洲欧美日韩| 欧美日韩国产影院| 欧美乱大交xxxxx| 欧美午夜精品久久久久久久| 国产成人亚洲综合91| 精品成人69xx.xyz| 欧美高清视频在线| 久久激情视频久久| 51ⅴ精品国产91久久久久久| 国产亚洲成av人片在线观看桃| 久久天天躁狠狠躁老女人| 欧美激情综合色综合啪啪五月| 98午夜经典影视| 日韩在线观看免费av| 精品久久久久久亚洲精品| 国产第一区电影| 亚洲有声小说3d| 在线看日韩欧美| 92版电视剧仙鹤神针在线观看| 97久久精品在线| 亚洲国产精品福利| 精品久久久久久久久久久久久久| 在线看国产精品| 欧美成aaa人片免费看| 国产ts人妖一区二区三区| 亚洲va国产va天堂va久久| 欧美激情2020午夜免费观看| 欧美精品videossex88|