牛骨文教育服务平台(让学习变的简单)
博文笔记

PHP-注册时邮箱验证功能的实现

创建时间:2015-12-20 投稿人: 浏览次数:154

现在很多网站注册都会要填写邮箱,而且需要收一封邮件激活才可以使用账户或者某些特殊功能,最近工作中有这样的需求,这里讲一下简单的实现方法:

思路分析

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

















声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。