php+jQuery+Mysql找回密码----ThinkPHP

最近用ThinkPHP做了一个邮箱找回密码功能,在遭遇了N个bug之后终于做成了,下面分享一下邮箱找回密码功能的实现:

邮箱找回密码实际上就是在用户通过验证之后重置密码的过程,一般开发者会在验证用户信息后通过程序生成一个新密码

或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密码模块重新设置新密码。

一般步骤是:

1.表单输入注册时的邮箱;

2.验证用户邮箱是否正确,如果用户邮箱不存在网站的用户表中,则提示用户邮箱未注册;

3.发送邮件,如果用户邮箱确实存在用户表中,则组合用于验证用户信息的字符串,并构造URL发送到用户邮箱中;

4.用户登录邮箱收取邮件,点击URL链接到网站验证程序;

5.网站程序通过用户请求的字符串查询本地用户表,比对用户信息是否正确;

6.如果正确则转到重置密码页面重新设置新密码,反之则提示用户验证无效。

首先肯定要先写一个找回密码的视图页面啦,示例代码如下:

视图界面显示如图:

这个弄完之后,接下来要对用户输入的邮箱进行判断验证(因为找回密码是通过给用户发送邮件来实现重置密码的,所以用户在注册时邮箱是必填的)

jQuery邮箱验证,代码:

以上使用的jQuery代码很方便简洁的完成了前端交互操作,如果您有一定的jQuery基础,那上面的代码一目了然,不多解释。

当然别忘了在页面中加载jQuery库文件,如果写完验证规则却发现功能没实现,那80%是jquery或者其他文件加载路径错了导致没加载必要的文件(这是个深刻的教训,我刚开始就大意了)

然后通过Ajax把用户输入的邮箱发送到控制器进行验证Email是否存在用户表中,如果有,则读取用户信息,将用户id、用户名和密码进行md5加密生成一个特别的字符串作为找回密码的验证码,然后构造URL。

同时我们为了控制URL链接的时效性,将记录用户提交找回密码动作的操作时间,最后调用邮件发送类发送邮件到用户邮箱。

代码如图:

发送邮箱函数如下:

里面有一个smtp类,这里面封装的函数比较多,我就不截图了,好了,这个时候你的邮箱将会收到一封关于密码找回的邮件,邮件内容中有一个URL链接,点击该链接到自己写的指定页面来验证邮箱。

邮箱验证到这了算是完成了,这个邮箱验证是我参考链接http://www.helloweba.com/view-blog-229.html做的,确实很不错,虽然有些地方总是出bug不过还好,如果对这种找回密码感兴趣的可以参考一下,想要源代码的可以直接去原文章,都差不多的。原文章里面有一个smtp包提供,我也是在那里下载的。 (完)

时间: 2024-10-11 07:32:13

php+jQuery+Mysql找回密码----ThinkPHP的相关文章

Mysql 找回密码

1,找到安装mysql的位置 输入cmd:进入mysql bin安装目录 如:D:\Program Files\MySQL\MySQL Server 5.5\bin>mysqld --skip-grant-tables 执行如上命令:这个cmd窗口就暂时不动 2.重新打开一个新的命令窗体 输入cmd进入安装目录bin文件下执行mysql命令 如:D:\Program Files\MySQL\MySQL Server 5.5\bin>mysql 输入以下命令:进行修改密码: mysql>

MySQL root密码找回

以MySQL多实例为例,演示找回MySQL root的密码 1.关闭mysql服务 [[email protected] ~]# mysqladmin -uroot -poldboy123 -S /data/3306/mysql.sock shutdown ==>通过mysqladmin shutdown优雅关闭mysql服务. [[email protected] ~]# lsof -i:3306 2.使用--skip-grant-tables参数后台启动mysql,忽略授权验证直接登录 [[

mysql修改密码、找回密码

已root用户为例 一.修改密码 方法一: 在mysql系统外,使用mysqladmin # mysqladmin -u root -p password "test123" Enter password: [输入原来的密码] 方法二: 通过登录mysql系统, # mysql -uroot -p Enter password: [输入原来的密码] mysql>use mysql; mysql> update user set password=passworD("

PHP会员找回密码功能实现实例介绍

设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名时,点击登录页面的“找回密码”超链接,打开表单,并输入注册用的E-MAIL邮箱,提交. 3.系统通过该邮箱,从数据库中查找到该用户信息,并更新该用户的密码为一个临时密码(比如:12345678). 4.系统借助Jmail功能把该用户的信息发送到该用户的邮箱中(内容包括:用户名.临时密码.提醒用户及时修改临时密码的提示语). 5.用户用临时密码即可登录. HTML 我们在找回密码的页面上放置

发送邮箱实现找回密码

注意事项 1..开启socket:在php.ini中取消extension=php_sockets.dll前面的分号. 2.登录你的邮箱手动开启STMP服务,这个服务默认是关闭的,一定要去邮箱->设置里去手动开启,开启时要求你设置一个独立密码,这个密码就是写在 'MAIL_PASSWORD'=>' ', // 邮箱密码,的密码而不是邮箱登录密码 3.userinfo中加上一个字段Resettime(邮箱提交时间,和当前时间比较,判断链接是否过期) 1.      在ThinkPHP/Exten

关于MySQL的密码

设置密码: mysqladmin -uroot password '111' 单实例设置密码 mysqladmin -uroot password 'aaa' -S /data/3307/mysql.sock 多实例设置密码 修改密码: 1, shell命令行修改: mysqladmin -uroot -p111 password 'aaa' mysqladmin -uroot -p111 password 'aaa' -S /data/3306/mysql.sock 2,登陆MySQL修改:

mysql忘记密码怎么搞?

对sqlserver比较熟悉, mysql找回root密码的方法: 1 在 /etc/my.cnf中,添加skip-grant-tables 2 重启mysqld服务 3 用 mysql -uroot -p直接登录 4 编写sql语句 use mysql; update user set  password=password('000000')  where user='root'; flush priviledges; 5 将步骤1删除即可.

Mac下忘记Mysql root密码重置

很久之前安装的mysql 在 mac本机,突然要用的时候,发现怎么也连接不上,网上找了很多的教程尝试都不成功,最后找到一篇尝试成功.感谢原博主的分享转载在下面进行记录,出处: http://blog.csdn.net/u014410695/article/details/50630233 以下方法亲测有效,过程使用的工具只有mac的终端无需workbench 当我们通过终端连接MySQL数据库时候我们会看到这样的信息 ERROR 1045: Access denied for user: '[e

AspNetCore-MVC实战系列(二)之通过绑定邮箱找回密码

AspNetCore - MVC实战系列目录 . 爱留图网站诞生 . AspNetCore - MVC实战系列(一)之Sqlserver表映射实体模型 . AspNetCore-MVC实战系列(二)之通过绑定邮箱找回密码 开篇唠嗑 本篇内容写在5.1假期前夕,主要是让大家能在节假日休息充点的时候能有好的干货例子,到目前为止netcore方面的实战例子分享即将进入正轨,谢谢各位朋友多多支持:最近工作安排的新项目即将开始,项目前期就我一人搭建,让我犹豫的是对于公司这个内部系统并且是初建的项目用什么开