PHP-注册时邮箱验证功能的实现
2015-12-20 22:32
696 查看
现在很多网站注册都会要填写邮箱,而且需要收一封邮件激活才可以使用账户或者某些特殊功能,最近工作中有这样的需求,这里讲一下简单的实现方法:
2. 当表单信息填写完毕之后,发送到服务器端验证,当数据都合法之后,需要将数据成功插入到数据库(is_active=0)。然后可以获取到主键ID,然后发送邮件的时候,携带这个ID
发送内容 形如:http://local.12.com/index.php?id=122&a=checkEmail的链接地址
3. 当会员用户登录注册时候的邮箱,邮件中有一个链接地址(ID),点击跳转到页面(自己写的激活账号的代码文件地址)去激活对应ID的那个账号(把标志is_active设为1)。
4. 当用户去操作别的要权限的操作或者登陆时,就判断这个会员的is_active是否为1,如果为1 则可以操作,如果不是1 则提示用户去赶紧激活。
数据库
id 主键ID
username 用户名
pwd 密码(md5)
status 激活状态(0代表未激活 1代表激活)
email 用户注册邮箱
login.html
测试时候的表单,超级简陋
提交的处理页面需要使用到发送邮件的phpmailer, 把class.phpmailer.php 和 class.smtp.php 文件放到项目中,然后需要改一下class.smtp.php
测试时用的是新浪,服务器是smtp.sina.com 同样的设这个就可以,注意一下要开启SMTP服务,在新浪邮箱设置中更改, 其他邮箱的就自己查一下吧。
在数据成功插入数据库之后调用class.smtp.php中的方法发送邮件(记得先引入文件或者把整个函数复制到处理页面)
最后在用户点击链接的文件中做激活用户操作即可
思路分析
1. 做一个注册页面,必须有的是【邮箱】这一个输入框2. 当表单信息填写完毕之后,发送到服务器端验证,当数据都合法之后,需要将数据成功插入到数据库(is_active=0)。然后可以获取到主键ID,然后发送邮件的时候,携带这个ID
发送内容 形如:http://local.12.com/index.php?id=122&a=checkEmail的链接地址
3. 当会员用户登录注册时候的邮箱,邮件中有一个链接地址(ID),点击跳转到页面(自己写的激活账号的代码文件地址)去激活对应ID的那个账号(把标志is_active设为1)。
4. 当用户去操作别的要权限的操作或者登陆时,就判断这个会员的is_active是否为1,如果为1 则可以操作,如果不是1 则提示用户去赶紧激活。
数据库
id 主键ID
username 用户名
pwd 密码(md5)
status 激活状态(0代表未激活 1代表激活)
email 用户注册邮箱
login.html
测试时候的表单,超级简陋
<html> <body> <h1>注册</h1> <hr> <form action="register.php" method="post" accept-charset="utf-8"> <span style="white-space:pre"> </span><p> 用户名:<input type="text " name='username' value="" /></p> <span style="white-space:pre"> </span><p>密码:<input type="password" name="pwd" value="" /></p> <span style="white-space:pre"> </span> <p>确认密码:<input type="password" name="pwd2" value="" /></p> <span style="white-space:pre"> </span><p>邮箱:<input type="email" name="email" value="" /></p> <span style="white-space:pre"> </span><p><input type="submit" name="submit" value="注册" /></p> </form> </body> </html
提交的处理页面需要使用到发送邮件的phpmailer, 把class.phpmailer.php 和 class.smtp.php 文件放到项目中,然后需要改一下class.smtp.php
测试时用的是新浪,服务器是smtp.sina.com 同样的设这个就可以,注意一下要开启SMTP服务,在新浪邮箱设置中更改, 其他邮箱的就自己查一下吧。
在数据成功插入数据库之后调用class.smtp.php中的方法发送邮件(记得先引入文件或者把整个函数复制到处理页面)
最后在用户点击链接的文件中做激活用户操作即可
<?php header("content-type:text/html;charset=utf-8"); $id = $_GET['id']; $link = mysql_connect('localhost','root','root'); mysql_query('set names utf8'); mysql_query('use test'); $sql = "update users set staus = 1 where id = $id"; if(mysql_query($sql)){ echo "激活成功"; }else{ echo "激活失败,请稍后再试"; } //echo $id; ?>
相关文章推荐
- 1.8LNMP环境编译安装php-5.6.14
- PHP环境搭建基础
- PHP中final类,抽象类,接口结构
- php配置smarty
- PHP 客户端IP
- PHP$this的用法和访问限定符
- PHP7 + MySQL: undefined function mysql_connect()
- ftp的主动模式和被动模式
- ThinkPHP连接mysql数据库
- php SqlServer 中文汉字乱码
- 利用GetPrivateProfileString读取ini文件的字段
- one day php. alomost all;
- php嵌入循环读写数据库小技巧
- PHP的核心Zend Engine
- PHP 7 值得期待的新特性(下)
- PHP 7 值得期待的新特性(上)
- phpstorm10.0.1 注册
- PHP__采集类__Snoopy
- PHP的WAMP的安装
- PHP 构建通信服务器