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;
?>

















  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值