邮箱注册新会员,以及邮箱激活功能

需求:

       我们在很多网站注册会员的时候,可以使用自己的邮箱注册,注册完成之后,会给你的注册邮箱发送一个邮件,邮件内容会包含一个链接,点击 激活下,这个账号就算注册完成了。我们就是实现一个类似功能。

实现逻辑:

      首先需要一个数据库,用来存注册成功的账号密码:

CREATE TABLE if not exists member
(
	id mediumint unsigned not null auto_increment,
	email varchar(60) not null comment '邮箱',
	password char(32) not null comment '密码',
	addtime int unsigned not null comment '创建时间',
	email_code char(32) not null default '' comment '激活验证码,如果为空,说明已经激活',
	primary key(id)
)engine=MyISAM default charset=utf8 comment '会员注册';

这里包含5个字段,主要说一下的就是email_code 字段,当注册成功的时候,会给email_code 字段赋一个唯一码,当邮箱激活后,会把这个唯一码 清除,email_code字段修改为空,这样就可以根据email_code 是不是空 来判断 当前用户, 有没有激活。

代码实现:

    关于html和jquery的代码太长了,这里就不贴出来了,html主要就是输入账号,密码,确认密码的几个框,jquery就是包括,判断邮箱格式是不是正确,发个ajax判断邮箱账号是不是已经存在,密码和确认密码是不是一致。 html页面 信息填写完成后,点击提交 进入 member.php 代码如下:

<?php
	//获取表单中的值
	$email = $_POST['email'];
	$password = $_POST['password'];
	//获取当前时间
	$addtime = time();
	//唯一码
	$email_code = md5(uniqid());
	$db = mysqli_connect('localhost','root','123','test');
	$query = "insert into member(email,password,addtime,email_code)values('$email','password','$addtime','$email_code')";
	$result = mysqli_query($db,$query);
	if($result){
		//发送邮件
		$content =<<<HTML
		<p>欢迎您成为本站会员,请点击以下链接地址完成email验证。</p>
		<p><a href="http://localhost/emailChek.php?email_code=$email_code">点击完成验证</a></p>
HTML;
		sendMail($email,"会员注册验证",$content);
		echo '注册成功,请到注册邮箱激活';
	}else{
		echo '注册失败';
	}

	
	//发送邮件函数
	function sendMail($to,$title,$content)
	{
		require_once('./PHPMailer_v5.1/class.phpmailer.php');
		require_once('./config.php');
		$mail = new PHPMailer();
		// 设置为要发邮件
		$mail->IsSMTP();
		// 是否允许发送HTML代码做为邮件的内容
		$mail->IsHTML(TRUE);
		// 是否需要身份验证
		$mail->SMTPAuth=TRUE;
		$mail->CharSet='UTF-8';
		/*  邮件服务器上的账号是什么 */
	
		$mail->From=MAIL_ADDRESS;
		$mail->FromName=MAIL_FROM;
		$mail->Host=MAIL_SMTP;
		$mail->Username=MAIL_LOGINNAME;
		$mail->Password=MAIL_PASSWORD;
		
		// 发邮件端口号默认25
		$mail->Port = 25;
		// 收件人
		$mail->AddAddress($to);
		// 邮件标题
		$mail->Subject=$title;
		// 邮件内容
		$mail->Body=$content;
		return($mail->Send());
	}
?>

config.php是设置的关于邮箱账号密码的一些宏, 发送邮件用的是PHPMailer_v5.1库,注册成功的时候,发送内容会包含一个链接 ,链接到emailChek.php同时会以get形式将email_code传过去。


emailChek.php的代码

<?php
	$email_code = $_GET['email_code'];
	$db = mysqli_connect('localhost','root','123','test');
	$query = "select id from member where email_code = '$email_code'";
	$result = mysqli_query($db,$query);
	if($result){
		$query = "update member set email_code = '' where email_code = '$email_code'";
		if ( mysqli_query($db,$query) )
			echo "激活成功";
		else
			echo "激活失败";
	}else{
		echo "激活失败";
	}
?>

这样就实现了,基本的所需功能了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值