In diesem Artikel wird hauptsächlich die Passwortabruffunktion von PHP+Mysql+jQuery vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Die sogenannte Passwort-Abruffunktion kann vergessene Passwörter nicht wirklich abrufen, da unsere Passwörter verschlüsselt und gespeichert werden. Im Allgemeinen generieren Entwickler nach Überprüfung der Benutzerinformationen ein neues Passwort oder generieren einen bestimmten Link und senden ihn eine E-Mail an das Postfach des Benutzers, und der Benutzer kann über den E-Mail-Link zum Modul zum Zurücksetzen des Passworts der Website ein neues Passwort zurücksetzen.
Natürlich nutzen einige Websites mittlerweile auch Handy-SMS, um Passwörter abzurufen. Das Prinzip besteht darin, Ihre Identität durch Senden eines Verifizierungscodes zu überprüfen, Sie müssen Ihr Passwort jedoch noch zurücksetzen um den Passwortabruf abzuschließen.
Die allgemeinen Schritte sind:
1. Geben Sie bei der Registrierung die E-Mail-Adresse des Benutzers ein Wenn die E-Mail-Adresse des Benutzers in der Benutzertabelle vorhanden ist, wird der Benutzer aufgefordert, die E-Mail-Adresse nicht zu registrieren. Erstellen Sie eine URL und senden Sie sie an die E-Mail-Adresse des Benutzers. Klicken Sie auf den URL-Link zum Website-Verifizierungsprogramm.
5 Tabelle durchsuchen Sie die vom Benutzer angeforderte Zeichenfolge und vergleichen Sie, ob die Benutzerinformationen korrekt sind.
6 Wenn sie korrekt sind, gehen Sie zur Seite zum Zurücksetzen des Passworts und versuchen Sie es erneut ungültig.
HTML
Wir platzieren eine Seite auf der Passwortabrufseite, auf der der Benutzer die für die Registrierung verwendete E-Mail-Adresse eingeben und dann die Front-End-JS an senden muss die Interaktion abwickeln.
<p><strong>输入您注册的电子邮箱,找回密码:</strong></p> <p><input type="text" class="input" name="email" id="email"><span id="chkmsg"></span></p> <p><input type="button" class="btn" id="sub_btn" value="提 交"></p>
jQuery
Nachdem der Benutzer die E-Mail-Adresse eingegeben und auf „Senden“ geklickt hat, überprüft jQuery zunächst, ob das E-Mail-Format korrekt ist, und wenn es korrekt ist, sendet es eine Ajax-Anfrage im Hintergrund sendmail.php, sendmail.php ist für die Überprüfung der Existenz des Postfachs und das Senden von E-Mails verantwortlich und gibt die entsprechenden Verarbeitungsergebnisse an die Front-End-Seite zurück. Bitte beachten Sie den jQuery-Code:
$(function(){ $("#sub_btn").click(function(){ var email = $("#email").val(); var preg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; //匹配Email if(email=='' || !preg.test(email)){ $("#chkmsg").html("请填写正确的邮箱!"); }else{ $("#sub_btn").attr("disabled","disabled").val('提交中..').css("cursor","default"); $.post("sendmail.php",{mail:email},function(msg){ if(msg=="noreg"){ $("#chkmsg").html("该邮箱尚未注册!"); $("#sub_btn").removeAttr("disabled").val('提 交').css("cursor","pointer"); }else{ $(".demo").html("<h3>"+msg+"</h3>"); } }); } }); })
Vergessen Sie natürlich nicht, die jQuery-Bibliotheksdatei auf die Seite zu laden. In 80 % der Fälle fragen mich einige Studenten, warum sie die von jb51.net heruntergeladene Demo nicht verwenden können jquery oder andere Dateien sind falsch, was dazu führt, dass die erforderlichen Dateien nicht geladen werden können.
PHP
sendmail.php muss überprüfen, ob die E-Mail in der Systembenutzertabelle vorhanden ist. Wenn ja, lesen Sie die Benutzerinformationen und aktivieren Sie die Benutzer-ID und den Benutzernamen und Passwort an MD5 Encryption generiert eine spezielle Zeichenfolge als Bestätigungscode zum Abrufen des Passworts und erstellt dann die URL. Um die Aktualität des URL-Links zu kontrollieren, zeichnen wir gleichzeitig die Vorgangszeit auf, wenn der Benutzer die Aktion zum Abrufen des Passworts sendet, und rufen schließlich die E-Mail-Sendeklasse auf, um die E-Mail an das Postfach des Benutzers zu senden Die Klasse smtp.class.php wurde gepackt, bitte laden Sie sie herunter.
include_once("connect.php");//连接数据库 $email = stripslashes(trim($_POST['mail'])); $sql = "select id,username,password from `t_user` where `email`='$email'"; $query = mysql_query($sql); $num = mysql_num_rows($query); if($num==0){//该邮箱尚未注册! echo 'noreg'; exit; }else{ $row = mysql_fetch_array($query); $getpasstime = time(); $uid = $row['id']; $token = md5($uid.$row['username'].$row['password']);//组合验证码 $url = "http://www.jb51.net/demo/resetpass/reset.php?email=".$email." &token=".$token;//构造URL $time = date('Y-m-d H:i'); $result = sendmail($time,$email,$url); if($result==1){//邮件发送成功 $msg = '系统已向您的邮箱发送了一封邮件<br/>请登录到您的邮箱及时重置您的密码!'; //更新数据发送时间 mysql_query("update `t_user` set `getpasstime`='$getpasstime' where id='$uid '"); }else{ $msg = $result; } echo $msg; } //发送邮件 function sendmail($time,$email,$url){ include_once("smtp.class.php"); $smtpserver = ""; //SMTP服务器,如smtp.163.com $smtpserverport = 25; //SMTP服务器端口 $smtpusermail = ""; //SMTP服务器的用户邮箱 $smtpuser = ""; //SMTP服务器的用户帐号 $smtppass = ""; //SMTP服务器的用户密码 $smtp = new Smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); //这里面的一个true是表示使用身份验证,否则不使用身份验证. $emailtype = "HTML"; //信件类型,文本:text;网页:HTML $smtpemailto = $email; $smtpemailfrom = $smtpusermail; $emailsubject = "jb51.net - 找回密码"; $emailbody = "亲爱的".$email.":<br/>您在".$time."提交了找回密码请求。请点击下面的链接重置密码 (按钮24小时内有效)。<br/><a href='".$url."'target='_blank'>".$url."</a>"; $rs = $smtp->sendmail($smtpemailto, $smtpemailfrom, $emailsubject, $emailbody, $emailtype); return $rs; }
include_once("connect.php");//连接数据库 $token = stripslashes(trim($_GET['token'])); $email = stripslashes(trim($_GET['email'])); $sql = "select * from `t_user` where email='$email'"; $query = mysql_query($sql); $row = mysql_fetch_array($query); if($row){ $mt = md5($row['id'].$row['username'].$row['password']); if($mt==$token){ if(time()-$row['getpasstime']>24*60*60){ $msg = '该链接已过期!'; }else{ //重置密码... $msg = '请重新设置密码,显示重置密码表单,<br/>这里只是演示,略过。'; } }else{ $msg = '无效的链接'; } }else{ $msg = '错误的链接!'; } echo $msg;
Schließlich ist die Datentabelle t_user-Struktur beigefügt:
CREATE TABLE `t_user` ( `id` int(11) NOT NULL auto_increment, `username` varchar(30) NOT NULL, `password` varchar(32) NOT NULL, `email` varchar(50) NOT NULL, `getpasstime` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Zusammenfassung:
Verwandte Empfehlungen:
PHP+jQuery+MySql-Implementierung roter und blauer Abstimmungsbeispiele
Yii-Framework in PHP Grundlegende Verwendung
Grundkenntnisse und Anwendung von PHP-Designmustern
Das obige ist der detaillierte Inhalt vonPHP+Mysql+jQuery realisiert die Funktion zum Abrufen von Passwörtern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!