首页 > 开发 > PHP > 正文

PHP实现的激活用户注册验证邮箱功能示例

2024-05-04 22:47:20
字体:
来源:转载
供稿:网友

本文实例讲述了PHP实现的激活用户注册验证邮箱功能。分享给大家供大家参考,具体如下:

这里将结合实例介绍如何使用PHP+Mysql完成注册帐号、发送激活邮件、验证激活帐号、处理URL链接过期的功能。

注册邮箱激活流程

1、用户注册
2、插入用户数据,此时帐号未激活状态。
3、将用户名密码或其他标识字符加密构造成激活识别码(你也可以叫激活码)。
4、将构造好的激活识别码组成URL发送到用户提交的邮箱。
5、用户登录邮箱并点击URL,进行激活。
6、验证激活识别码,如果正确则激活帐号。

t_user.sql

用户信息表中字段Email很重要,它可以用来验证用户、找回密码、甚至对网站方来说可以用来收集用户信息进行Email营销,以下是用户信息表t_user的表结构:

CREATE TABLE IF NOT EXISTS `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL COMMENT '用户名', `password` varchar(32) NOT NULL COMMENT '密码', `email` varchar(30) NOT NULL COMMENT '邮箱', `token` varchar(50) NOT NULL COMMENT '帐号激活码', `token_exptime` int(10) NOT NULL COMMENT '激活码有效期', `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态,0-未激活,1-已激活', `regtime` int(10) NOT NULL COMMENT '注册时间', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;

HTML

以下是一个注册表单,用户可以输入注册信息,包括用户名、密码和邮箱。

<form id="reg" action="register.php" method="post">  <p>用户名:<input type="text" class="input" name="username" id="user"></p>  <p>密 码:<input type="password" class="input" name="password" id="pass"></p>  <p>E-mail:<input type="text" class="input" name="email" id="email"></p>  <p><input type="submit" class="btn" value="提交注册"></p></form>

register.php完成写入数据和发送邮件

首先连接数据库 和包含邮件发送类 smtp.class.php

include_once("connect.php");//连接数据库include_once("smtp.class.php");//邮件发送类

前端验证表单我们省略了,直接看程序

$username = stripslashes(trim($_POST['username']));$query = mysql_query("select id from t_user where username='$username'");$num = mysql_num_rows($query);if($num==1){  echo '用户名已存在,请换个其他的用户名';  exit;}

接着我们将用户密码加密,构造激活识别码:

$password = md5(trim($_POST['password'])); //加密密码$email = trim($_POST['email']); //邮箱$regtime = time();$token = md5($username.$password.$regtime); //创建用于激活识别码$token_exptime = time()+60*60*24;//过期时间为24小时后$sql = "insert into `t_user` (`username`,`password`,`email`,`token`,`token_exptime`,`regtime`)values ('$username','$password','$email','$token','$token_exptime','$regtime')";mysql_query($sql);            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表