业务流程:

  1. 用户在前端输入手机号后发送验证码请求,并发送到php处理页。

  2. php处理页收到手机号,生成验证码并调用短信平台。

  3. 短信平台采用API对接,并发送验证码

  4. 用户收到验证码,并提交注册

  5. php处理页收到验证码并校验验证码是否正确。

  6. 验证码正确,注册完成/否则注册失败

整体思路是比较简单的,而且比较适合入门不久的程序猿参考,看这不会像百度上其他的那些代码写的乱七八糟的。一共两个文件,一个html表单页面另一个是PHP的处理页面,纯学习项目 如果有线上需求请重新整理代码。下面开始上代码,一看就懂了。

注意:demo里没有加手机号的正则验证!!

根目录

-user

-reg.html

-include

-active.php

reg.html页面(需要引入jq库)

<!doctype html>
<html>
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><script type="text/javascript" src="js/jquery.min.js"></script><title>Document</title>
</head>
<body>手机号:<input type="text" name="tel" id="tel"><button type="button" id="HQ">获取验证码</button><br>验证码:<input type="text" name="code" id="code"><br><button ID="TiJiao">提交注册</button>
<script>$("#HQ").click(function () {var tel = $("#tel").val();$.post("../include/active.php",{act:'UserLoginCode',tel:tel},function (data) {})});$("#TiJiao").click(function () {var tel = $("#tel").val();var code = $("#code").val();if(tel=='' || code==''){alert("手机号和验证码不能为空!");}else{$.post("../include/active.php",{act:'UserLogin',tel:tel,code:code},function (data) {if(data==1){alert("验证成功");}else if(data==2){alert("验证码错误");}else if(data==3){alert("验证码已失效");}else{alert("网络波动");}})}})
</script>
</body>
</html>

active.php页面,短信验证码基于阿里云平台API,点击这里跳转

<?php
session_start();
$act = isset($_POST['act'])?$_POST['act']:'';
if($act=='UserLoginCode'){$tel = isset($_POST['tel'])?$_POST['tel']:''; //接收到reg页传来的手机号$code = mt_rand(000000,999999); //生成一个6位的验证码$_SESSION['code'] = $code; //把验证码存进session中$_SESSION['time'] = time()+180; //验证码有效期为3分钟//短信验证码开始,以下代码为官方demo,来自阿里云$host = "https://smssend.shumaidata.com";$path = "/sms/send";$method = "POST";$appcode = "阿里云的appcode码";$headers = array();array_push($headers, "Authorization:APPCODE " . $appcode);$querys = "receive={$tel}&tag={$code}&templateId=M09DD535F4";$bodys = "";$url = $host . $path . "?" . $querys;$curl = curl_init();curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);curl_setopt($curl, CURLOPT_FAILONERROR, false);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);//设定返回信息中是否包含响应信息头,启用时会将头文件的信息作为数据流输出,true 表示输出信息头, false表示不输出信息头//如果需要将字符串转成json,请将 CURLOPT_HEADER 设置成 falsecurl_setopt($curl, CURLOPT_HEADER, true);if (1 == strpos("$".$host, "https://")){curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);}
}
if($act=='UserLogin'){if($_SESSION['time'] >=  time()){ //判断验证码的时间是都大于当前时间$code =  isset($_POST['code'])?$_POST['code']:''; //接到reg页面传来的验证码if($code == $_SESSION['code']){ //验证码进行比对echo 1; //验证成功}else{echo 2; //验证码错误}}else{ //验证码的时间大于当前时间,代表失效了unset($_SESSION['code']);echo 3; //验证码失效了}
}

php原生代码实现短信验证码注册业务,流程详解附demo相关推荐

  1. 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)

    获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...

  2. 手机短信验证码注册-短信平台验证码开发6

    经过前面的基础准备工作后, 就可以正式进入开发的阶段了, 我们的短信接口开发, 主要以实现手机短信验证码功能案例, 进行演示, 因为这个功能在实际项目中用得最多. 这一节课程, 我们先把手机短信验证码 ...

  3. php 短信验证登录,短信验证码注册登录的实现,php接入的3种方法(附示例)

    上周,有朋友需要帮忙做一个关于手机短信验证码注册登录的功能,之前没有做过,于是我查查资料,汇总出PHP接入短信验证码的3种方法,现在和大家分享: 1.cURL $curl = curl_init(); ...

  4. 国际短信系统平台后台功能详解-移讯云短信软件

    国际短信系统平台后台功能详解-移讯云短信软件   后台登陆首页显示 ⦁    用户总量记录: 显示总使用户数量 ⦁    待审核账号数量记录: 等待审核的新用户账号数量 ⦁    待审核签名数量记录: ...

  5. 个人邮箱哪个好,163个人邮箱注册申请流程详解!

    个人邮箱哪个好,TOM的163个人邮箱注册申请流程详解.163邮箱是一个具有历史性的邮箱,也是大众很喜爱的品牌.通常被域名办公必备的神器,最近,小编看到163vip.Com邮箱正式登陆,这是即163. ...

  6. ThinkPHP5 实现短信验证码注册功能

    在现在这个短信通知泛滥的年代,短信验证码成了不可或缺,与此同时,短信验证码的平台也是各种各样.这样一来,平台好坏就无从区分.这里推荐用云之讯的吧,速度还不错,延迟没有,还送10块钱(100多条吧,测试 ...

  7. android短信验证码代码,Android短信验证码自动填写实现代码

    今天给大家分享一个Android短信验证码自动填写的功能.先看下效果图,我发送了一条短信到手机,自动填写验证码.如图: 这个小功能运用到了观察者模式,什么是观察者模式? 观察者模式 :定义对象间的一种 ...

  8. 小程序短信验证码登录,1分钟实现小程序发短信功能,借助云开发10行代码实现短信验证码登录小程序

    老规矩先看效果图 普通短信 验证码短信 今天被云开发官方告知,云开发支持发短信功能了,然后就迫不及待的来尝下鲜. 进入官方文档一看,云开发给咱们开发者的福利还真不小. 不仅仅可以很方便的使用短信功能, ...

  9. C# - RestSharp实现短信验证码注册登录完整示例

    这次给大家介绍C# - RestSharp实现短信验证功能的方法,由于,短信验证码是现在不可或缺的一种身份验证方式,所以,就来看看通过C#通过RestSharp的方式实现验证功能,下面就以云市场服务商 ...

  10. springsecurity自定义短信验证码认证登录流程

    文章目录 前言 验证码存储我们采用redis作为缓存 (注意,这里为了测试方便改为手动设置验证码) 经过上面接口,验证码已经存入到redis中,下面开始认证流程 自定义SmsCodeAuthentic ...

最新文章

  1. tensorflow从入门到精通100讲(七)-TensorFlow房价预估使用Keras快速构建模型
  2. 信息系统项目管理知识--云计算
  3. python常考题_Python语言基础考察点:python语言基础常见考题(一)
  4. 题目1005:Graduate Admission(结构体排序)
  5. 仅仅有单日的确诊总人数,无法触发SAP Analytics Cloud的Smart Discovery功能
  6. php内核分析(六)-opcode
  7. 基于mysql数据库的应用_MySQL数据库应用
  8. 如何让梯形变成平行四边形_开放的课堂 创新的天地——平行四边形的面积教学片段与反思...
  9. java,javac,javap命令
  10. 民航飞行学院计算机学院院长,中国民航飞行学院计算机学院领导及老师到访四川华迪开展教研活动...
  11. ESP32使用Arduino环境,安装、编译、下载、安装库
  12. 全国高校计算机能力挑战赛C语言组真题
  13. Codeforces Round #493 (Div. 2):C. Convert to Ones
  14. python可变参数的实验性_详解Python的三种可变参数
  15. 反编译object文件c语言,能不能通过反编译程序看.sys文件的源代码!
  16. EXCEL等间隔数据处理
  17. [线性模型总结] 线性回归+方差分析+协方差分析+混合效应+面板数据模型
  18. 超声波传感器(CHx01ICU-x0201ICU-30201) - 资源抢先看(资料获取)
  19. 罗杨美慧 20190919-2 功能测试
  20. GIS 术语和缩略语

热门文章

  1. Oracle数据库优化的方法
  2. 一文看懂常见域名后缀的含义
  3. 2020年工信部可备案的域名后缀大全
  4. python 数组去重_python数组去重
  5. Python数据去重
  6. QT5使用PCAN读取CAN数据
  7. 【FinE】EMD/EEMD方法及金融数据分解
  8. Java汉字转GB2312编码【工具类】
  9. vue中获取屏幕高度(封装使用)
  10. 计算机不能报名系统软件,电脑无法安装税控系统、国税申报软件,怎么回事