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

预备条件
我们在注册账户时,一般在用户表中会记录下我们的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实现的用户注册表单验证功能简单示例
# 激活码
# 用户注册
# 中原
# 还会
# 这个问题
# 把它
# 它是
# 就把
# 写了
# 使我
# 只需要
# 可以使用
# 一封
# 解决方法
# 中会
# 此文
# 发送邮件
# 大家多多
# 它为
# 就可以
相关文章:
想学网站制作怎么学,建立一个网站要花费多少?
如何通过虚拟机搭建网站?详细步骤解析
制作营销网站公司,淘特是干什么用的?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何通过IIS搭建网站并配置访问权限?
手机网站制作与建设方案,手机网站如何建设?
建站主机服务器选型指南与性能优化方案解析
淘宝制作网站有哪些,淘宝网官网主页?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
怎么将XML数据可视化 D3.js加载XML
开心动漫网站制作软件下载,十分开心动画为何停播?
建站之星导航配置指南:自助建站与SEO优化全解析
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
如何快速搭建高效可靠的建站解决方案?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
定制建站流程步骤详解:一站式方案设计与开发指南
网站制作难吗安全吗,做一个网站需要多久时间?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何快速搭建高效WAP手机网站?
制作网站的软件免费下载,免费制作app哪个平台好?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
开源网站制作软件,开源网站什么意思?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
官网网站制作腾讯审核要多久,联想路由器newifi官网
制作网站外包平台,自动化接单网站有哪些?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何配置支付宝与微信支付功能?
网站制作网站,深圳做网站哪家比较好?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
微课制作网站有哪些,微课网怎么进?
深圳网站制作培训,深圳哪些招聘网站比较好?
如何破解联通资金短缺导致的基站建设难题?
建站之星代理如何优化在线客服效率?
建站DNS解析失败?如何正确配置域名服务器?
七夕网站制作视频,七夕大促活动怎么报名?
教程网站设计制作软件,怎么创建自己的一个网站?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
实现点击下箭头变上箭头来回切换的两种方法【推荐】
专业公司网站制作公司,用什么语言做企业网站比较好?
制作宣传网站的软件,小红书可以宣传网站吗?
Java解压缩zip - 解压缩多个文件或文件夹实例
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
*请认真填写需求信息,我们会在24小时内与您取得联系。