我们在注册一个网站的账户时,通常都会收到一封含点击链接激活的邮件,而它是怎么激活我们的账户的呢,今天向大家介绍一种方法。

预备条件
我们在注册账户时,一般在用户表中会记录下我们的id、用户名、密码、邮箱或手机号,还会有一个账户激活与否的字段。我们假设它为 activation varchar(50) 注册时一般都会生成一个激活码,并且把激活码插入activation字段,我们可以使用$activation_key=bin2hex(openssl_random_pseudo_bytes(16)); 来生成,并且把它插入字段。
在链接中保存激活信息
既然我们点击了邮件里的链接后,就激活了账户,那么说明这个链接里,必然储存了激活信息。而它应该储存哪些信息呢,首先,必须有激活码,还有用户注册时的邮箱或者id,我们这里用邮箱。例如下面这个链接。
复制代码 代码如下:
$message.="<a href="." rel="external nofollow" http://www.XXXXX.com/activate.php?email=".urlencode($email)."&key=$activation_key".">Activate</a>";
$email使我们注册时的邮箱,我们用urlencode()来编码一下,将字符串用于 URL 的请求部分,$activation_key就是我们生成的激活码了,我们用服务器向这个email发送激活邮件,而这个在邮箱客户端里,会显示成一个超链接,提示你点击,点击后,我们就把email和key传送到了activate.php文件,也就是开始执行验证并激活账户了。
在activate.php中验证信息
我们使用URL请求向activate.php传入用户邮箱和激活码,现在只需要调取数据库中原有的信息进行对比,就可以验证用户了,所以我们第一步才将激活码插入用户表中,我写了一个activate.php的例子:
<?php
$link=mysqli_connect("localhost", "root", "root", "project") or die("Database Access Denied");//连接数据库
if (!isset($_GET['email'])||!isset($_GET["key"])){
echo "<div class='alert alert-danger'>Account Activation Failed</div>";
exit;//如果邮件链接损坏,没有传入用户激活信息,则不执行后续步骤
}
$email=$_GET['email'];
$key=$_GET['key'];
$email=mysqli_real_escape_string($link, $email);
$key=mysqli_real_escape_string($link, $key);//转义特殊字符
$sql="UPDATE users SET activation='activated' WHERE (user_email='$email' AND activation='$key') LIMIT 1";
$result=mysqli_query($link, $sql);//查询email与key匹配的数据项,并且更新activation字段到activated
if (mysqli_affected_rows($link)==1){
echo "<div>Account Activated</div>";
echo '<a href="index.php" rel="external nofollow" type="button">Login</a>';
echo "<br/>";
}else{
echo "<div>Account Activation Failed Or Already Activated</div>";
}
?>
现在账户就激活了,用户在登录时,先匹配一下activation是否为activated,接着再进行后续步骤
此文仅仅只涉及这个问题的解决方法,一个完整的用户注册、激活、登录,还应该配置发送邮件的服务器
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# PHP实现邮件激活
# PHP邮件激活账户
# php用户注册邮箱验证
# php用户注册页面利用js进行表单验证具体实例
# 超详细的php用户注册页面填写信息完整实例(附源码)
# php+mysql实现用户注册登陆的方法
# php用户注册信息验证正则表达式
# PHP学习笔记 用户注册模块用户类以及验证码类
# PHP制作用户注册系统
# php 表单验证实现代码
# 基于PHP+Ajax实现表单验证的详解
# php下常用表单验证的正则表达式
# php封装的表单验证类完整实例
# PHP实现的用户注册表单验证功能简单示例
# 激活码
# 用户注册
# 中原
# 还会
# 这个问题
# 把它
# 它是
# 就把
# 写了
# 使我
# 只需要
# 可以使用
# 一封
# 解决方法
# 中会
# 此文
# 发送邮件
# 大家多多
# 它为
# 就可以
相关文章:
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
如何选择美橙互联多站合一建站方案?
如何用腾讯建站主机快速创建免费网站?
定制建站哪家更专业可靠?推荐榜单揭晓
如何挑选高效建站主机与优质域名?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
如何快速搭建高效WAP手机网站?
XML的“混合内容”是什么 怎么用DTD或XSD定义
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
黑客如何通过漏洞一步步攻陷网站服务器?
网站制作软件有哪些,制图软件有哪些?
如何彻底删除建站之星生成的Banner?
如何撰写建站申请书?关键要点有哪些?
如何配置FTP站点权限与安全设置?
seo网站制作优化,网站SEO优化步骤有哪些?
营销式网站制作方案,销售哪个网站招聘效果最好?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
建站之星备案是否影响网站上线时间?
如何通过宝塔面板实现本地网站访问?
如何用景安虚拟主机手机版绑定域名建站?
如何快速生成可下载的建站源码工具?
如何快速重置建站主机并恢复默认配置?
C#如何在一个XML文件中查找并替换文本内容
导航网站建站方案与优化指南:一站式高效搭建技巧解析
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何通过主机屋免费建站教程十分钟搭建网站?
建站之星官网登录失败?如何快速解决?
Android滚轮选择时间控件使用详解
建站主机选哪家性价比最高?
建站之星3.0如何解决常见操作问题?
如何配置支付宝与微信支付功能?
浅析上传头像示例及其注意事项
专业网站建设制作报价,网页设计制作要考什么证?
行程制作网站有哪些,第三方机票电子行程单怎么开?
制作门户网站的参考文献在哪,小说网站怎么建立?
招商网站制作流程,网站招商广告语?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
如何在香港免费服务器上快速搭建网站?
临沂网站制作公司有哪些,临沂第四中学官网?
如何选择网络建站服务器?高效建站必看指南
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
,石家庄四十八中学官网?
建站主机数据库如何配置才能提升网站性能?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
宝塔面板创建网站无法访问?如何快速排查修复?
*请认真填写需求信息,我们会在24小时内与您取得联系。