在日常开发过程中,我们会经常遇到用邮箱找回密码,今天就给大家讲解一下。

一、设置思路

1、用户注册时需要提供一个 email 邮箱,目的就是用该邮箱找回密码。

2、当用户忘记密码或用户名时,点击登录页面的“找回密码”超链接,打开表单,并输入注册用的 email 邮箱,提交。

3、系统通过该邮箱,从数据库中查找到该用户信息,并更新该用户的密码为一个临时密码(比如:123456)。

4、系统借助 PHPMailer 类库把该用户的信息发送到该用户的邮箱中(内容包括:用户名、临时密码、提醒用户及时修改临时密码的提示语)。

5、用户用临时密码即可登录。

二、HTML页面

在找回密码的页面上放置一个要求用户输入注册时所用的邮箱,然后提交,由 js 来完成和后台的交互。

代码如下

输入您注册的电子邮箱,找回密码:

三、jQuery请求与交互

当用户输入完邮箱并点击提交后,js 先验证邮箱格式是否正确,若正确则向 sendemail.php 发送 Ajax 请求,sendemail.php 会验证邮箱是否存在和发送邮件,并将相应的处理结果返回给前台页面,并在页面展示其结果。

js 代码如下

$(function(){$("#sub_btn").click(function(){var email = $("#email").val();//匹配emailvar preg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;if(email=='' || !preg.test(email)){$("#chkmsg").html("请填写正确的邮箱!");}else{$.post("sendemail.php",{mail:email},function(msg){if(msg=="no"){$("#chkmsg").html("该邮箱尚未注册!");$("#sub_btn").removeAttr("disabled").val('提 交').css("cursor","pointer");}else{$("#sucmsg").html(""+msg+"");}});}});})

注意:要在页面中加载JQuery库文件,否则无法使用。

四、PHP 文件

1、sendemail.php 需要验证 Email 是否存在系统用户表中,如果有,则读取用户信息,将用户id、用户名和密码进行 md5 加密后生成一个字符串作为找回密码的token,之后构造URL。

同时我们为了控制URL链接的时效性,将记录用户提交找回密码的时间,最后调用邮件发送方法发送邮件到用户邮箱,发送邮件方法 smtp.func.php 已经打包好。代码如下:

点击提交之后,你的邮箱将会收到一封的密码找回邮件,邮件内容中有一个URL链接,点击该链接到 reset.php 来验证邮箱。

reset.php 代码:

reset.php 首先接受两个参数 email和token,然后根据 email 查询数据表 t_user 中是否存在该 email。

若 email 存在则获取该用户的信息,并且和 sendmail.php 中的 token 组合方式一样生成 token 值,然后再与 url 传过来的 token 进行对比,若token值不相同,则提示“该链接无效,token值错误!”;若当前时间与发送邮件时的时间相差超过24小时,则提示“该链接已超时!”。

反之,则说明链接有效,并且调转到重置密码页面,这时用户就可以自己设置新密码了。

最后,附上数据表t_user结构:

CREATE TABLE `t_user` (`user_id` int(11) unsigned NOT NULL AUTO_INCREMENT,`username` varchar(255) NOT NULL COMMENT '用户名',`password` varchar(255) NOT NULL COMMENT '用户密码',`email` varchar(255) NOT NULL COMMENT '邮箱',`resettime` int(11) DEFAULT NULL COMMENT '重置密码的时间',PRIMARY KEY (`user_id`)) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

smtp.class.php文件

PHP使用PHPMailer发送邮件

如何使用PHPExcel实现Excel文件的导出?

Php怎样实现通过邮箱找回密码,PHP如何使用邮箱找回密码?相关推荐

  1. 微信qq邮箱提醒 服务器繁忙,用qq邮箱找回微信密码为什么一直提示服务器繁忙???...

    满意答案 fgc121 2016.08.27 采纳率:51%    等级:6 已帮助:608人 QQ邮箱发邮件老是显示系统繁忙的原因及解决方法如下: 1.同一时间操作QQ邮箱的人员太多导致系统繁忙,可 ...

  2. java实现通过绑定邮箱找回密码功能_SpringMVC通过邮件找回密码功能的实现

    1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密 ...

  3. 【Steam账户登录提示账户或密码错误,查找邮箱与手机号提示没有关联账户,Steam被盗找回!】

    Steam账户登录提示账户或密码错误,查找邮箱与手机号提示没有关联账户,Steam被盗找回! Steam账户被盗,无法登录 经常看到有人说Steam账户被盗了,登录不上去,而且找回密码时提示查不到对应 ...

  4. 怎么知道 网站是否直接明文保存密码_忘记账号密码 浏览器记住了 怎么找回密码?...

    对于健忘又没有使用保存密码插件的习惯的人来说,忘记密码是经常的事情. 而大家知道的也就是通过网站的找回密码选项,通过邮箱,手机号,人工等方式找回密码,但是如果是个小网站,没有找回的功能,或者当时是随便 ...

  5. 找回密码功能 java_Java实现邮件找回密码功能

    本文实例为大家分享了Java实现邮件找回密码功能的具体代码,供大家参考,具体内容如下 1.有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回, ...

  6. instagram忘记密码怎么解决_如何找回ins密码

    今天遇到了一个朋友,刚在网页端注册好账号,就把ins的密码给忘记了. 用的是手机号注册,尝试着进行找回,然后instagram给发来了一条短信,里面包含了这样的链接. 然后点开链接,就跳转到Insta ...

  7. QQ密码忘记怎么办 教你找回QQ密码

    QQ密码找回的重要关键词 QQ密码保护 QQ密码保护是一套保障QQ密码安全的机制.通过给你的QQ号填写对应的相关资料,如证件号.安全提示问题.安全邮箱等,给你的QQ号穿一件防弹衣.一旦出现问题,就可以 ...

  8. bilibili怎么用用户名登录_b站(bilibili)账号用户名和登录密码错误怎么办?很容易找回吗?...

    一.b站账号用户名及密码找回的方法 方法一:点击忘记密码进行找回,登录之后,在我们输入B站账号.密码的下方,有一个忘记密码,点击忘记密码就可以进入找回B站账号密码的页面了,我们继续下面的步骤. 方法二 ...

  9. QQ密码忘记不用急 QQ找回有方法(转)

    http://www.itful.com/html/apply/qq/jq/2009/0206/56.html 现在QQ号似乎已经成为网民必备的一个聊天工具,每当上网时总是习惯性的首先打开QQ再去浏览 ...

  10. 密码找回php,PHP结合jQuery实现找回密码

    通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...

最新文章

  1. exception in thread main java.lang.noclassdeffounderror wrong name
  2. 如何正确使用as follows 与 following
  3. vant引入组件报错_强烈推荐优秀的Vue UI组件库
  4. java array 元素的位置_208道高频 Java面试题答案2
  5. 解决办法:对‘operator delete(void*)’未定义的引用
  6. Tomcat下ajax请求路径总结
  7. [C++]类的继承与派生
  8. linux彻底卸载 mysql
  9. 开源的网页防篡改监控工具推荐——WGCLOUD
  10. 安装VMware+linux+oracle手记
  11. 如何使用USBASP烧写器和Atmel Studio 7.0对AVR微控制器进行编程
  12. 生活游记——泰国自由行
  13. UVC 摄像头驱动(二)描述符分析
  14. matlab中TCR触发,TCR+FC型SVC及MATLAB仿真.doc
  15. web app 中如何调用支付宝app 进行支付
  16. 直男届的杀手-『小冰』架构解析
  17. 2020,300道高级iOS开发面试题(最新整理)
  18. 《文法俱乐部》读书笔记之分词--LG二进制
  19. 自强脱贫•助残共享 2019第二十九个全国助残日在深圳举办
  20. JS的onBlur事件与onfocus事件

热门文章

  1. 虚短”“虚断”两板斧,搞定运算放大器 11张大图详(转)感觉特别有用 转过来收藏...
  2. 如何在ubuntu-1804中增加swapfile
  3. 扇贝计算机英语单词,扇贝英语单词
  4. C 语言学习笔记(一):C 语言的开发环境
  5. github Desktop工具桌面版汉化教程
  6. YOLO3 -- 介绍
  7. mongodb 备份 导入导出
  8. 1-4课:程序、编程和算法之间到底有什么三角关系?
  9. 群晖系统安装相关文件分享
  10. revit2019 导出obj_Revit导出OBJ格式