PHP+MySQL用户注册发送邮件激活账号实例,样式用的layui,简洁美观。
1.注册发送邮件激活账号,同时检测邮箱是否已注册。
2.检测邮箱是否存在,当邮箱存在时判断是否激活,若未激活,则更改激活码和注册时间。邮箱不存在时则发送激活邮件。
邮件配置
$smtpserver = "smtp.exmail.qq.com"; //SMTP服务器 $smtpserverport = 25; //SMTP服务器端口 $smtpusermail = "ruxi@faofao.cn"; //SMTP服务器的用户邮箱 $smtpuser = "ruxi@faofao.cn"; //SMTP服务器的用户帐号 $smtppass = "*********"; //SMTP服务器的授权码 $smtp = new Smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); //实例化邮件类 $emailtype = "HTML"; //信件类型,文本:text;网页:HTML $smtpemailto = $email; $smtpemailfrom = $smtpusermail; $emailsubject = "用户帐号激活"; $emailbody = " "; $rs = $smtp->sendmail($smtpemailto, $smtpemailfrom, $emailsubject, $emailbody, $emailtype);
注册验证
if($num>=1){ //大于一条记录则存在 $jihuo = mysql_query("select * from fao_user where fao_email='$email'"); if($row = mysql_fetch_array($jihuo)){ $upstatus=$row['fao_status']; $upid=$row['fao_id']; } if($upstatus==0){ //激活状态为0,表示未激活 $updata = mysql_query("UPDATE fao_user SET fao_regtime='$regtime',fao_token='$token',fao_token_exptime='$token_exptime' WHERE fao_id='$upid'"); $retval = mysqli_query($updata); if(! $retval ){ include_once("email.php"); }else{ ?><script type="text/javascript">alert("注册失败,请提交错误,稍后尝试!请及时登录邮箱激活您的帐号!");window.history.go(-1);</script><? } }else{ ?><script type="text/javascript">alert("邮箱已被注册,请更换其他的邮箱账号!");window.history.go(-1);</script><? } exit; }
激活验证
<? }else{ mysql_query("update fao_user set fao_status=1 where fao_id=".$row['fao_id']); if(mysql_affected_rows($conn)!=1) die(0); // $msg = '激活成功!'; ?><script type="text/javascript">alert("您的激活有效期已过,请重新注册您的帐号发送激活邮件!");</script><? } }else{ ?><script type="text/javascript">alert("激活成功!正在跳转到登录页!");</script>if($row){ if($nowtime>$row['fao_token_exptime']){ //30min ?><script type="text/javascript">alert("链接已失效!");</script><? }