短信验证码校验的实现
1. 根据手机号码发送验证码
关于haoservice
公司这边外包项目为了实现短信验证功能而向haoservice买的功能,其实就是一串url,在里面有几个参数。
http://apis.haoservice.com/sms/send?mobile={$phone}&tpl_id=2&tpl_value=%23code%23%3d{$code}%26%23company%23%3d{$company}&key={$key}
比较重要的是以下几个:
mobile 你所要发送验证码的号码
tpl_value 为你要发送的信息,注意,必须以
#code#={$code}&#company#={$company}
形式去urlEncode,其中的{$code}是你要发送的验证码,{$company}为你的公司名
直接访问即可发送验证码
验证码可以根据自己需要随意生成,电话号码就得通过用户输入,再通过表单提交或者ajax来实现
这里我用的是ajax来实现
$.ajax({url: "./send_code.php", data: {phone: $("#phone").val()}});
在session保存验证码
由于需要比对,所以肯定是需要有一个校验本的,至于是放在哪里,就是得根据实际情况来决定,由于现在情况是,验证码只能存活一段时间而已,且是用完即弃的玩意,最好还是用session来保存验证码
$lifetime=60;//保存1分钟
session_start();
setcookie(session_name(),session_id(),time()+$lifetime,"/");
$_SESSION["code"] = $time; //保存验证码
而在验证完毕后也是得尽快销毁
if ($code == $_GET["code"]) {unset($_SESSION['code']);echo 'successful';}
2. 倒计时再发送的按钮
不废话直接上代码
$(".msgs").click(function (event) {var time = 30;var code = $(this);if (validCode) {validCode = false;code.addClass("msgs1");var t = setInterval(function () {time--;code.html(time + "秒");if (time == 0) {clearInterval(t);code.html("重新获取");validCode = true;code.removeClass("msgs1");}}, 1000);}});
msgs元素是获取验证码的按钮,利用setInterval来实现倒计时的功能,并利用css来改变它的可按与不可按
css如下
.msgs {display: inline-block;width: 104px;color: #fff;font-size: 12px;border: 1px solid #0697DA;text-align: center;height: 30px;line-height: 30px;background: #0697DA;cursor: pointer;}.msgs1 {background: #E6E6E6;color: #818080;border: 1px solid #CCCCCC;}
3. 校对验证码
这边依旧是使用ajax来实现验证码的校对,因为不希望用户输错验证码后界面被完全刷新而得重新输入
$("#check").click(function () {var code = $("#code").val();if (code == '') {alert("验证码不为空");return false;}else {$.ajax({url: "./check_code.php",data: {code: $("#code").val()},success: function (data) {alert(data);if (data == "successful") {location.href = "./index.php";}else if(data == "fail"){alert("验证码错误");}}});}});})
check_code.php的代码如下
<?php
/*** Created by PhpStorm.* User: Administrator* Date: 2015/11/17* Time: 10:06*/
session_start();
if (isset($_SESSION['code'])) {$code = $_SESSION['code'];if (isset($_GET["code"])) {if ($code == $_GET["code"]) {unset($_SESSION['code']);
// Header("Location: ./index.php");echo 'successful';} else {echo"fails";}}
}else{echo '验证码失效';
}
demo地址
短信验证码校验的实现相关推荐
- Java用户注册手机短信验证码校验功能实现
验证用户提交的手机短信验证码,如果验证码错误就跳回到当前页面.在短信验证码未填写或未正确填写时,就关闭底下注册按钮的功能,只有短信验证码通过校验后才打开注册按钮的功能.第二种方式是所有输入项全部填写完 ...
- 【django】用户注册时短信验证码校验、避免频繁发送短信验证码【17】
注册时短信验证后端逻辑 class CheckSMScodeView(View):def get(self,request,phone):'''用户注册时短信验证码的校验功能:param reques ...
- django-实现登录短信验证
功能演示 核心任务 前端功能: 点击按钮Ajax调用发送验证码功能 输完验证码后Ajax调用验证功能 后端功能: 功能1:发送验证码功能 功能2:验证码检查 后台核心逻辑(不需要手写) 功能3:发短信 ...
- 短信验证,图形验证码校验
短信验证,防爆破,防轰炸,防绕过,防套用 1:俩分钟有效,防短时间多次发送轰炸 2:俩分钟后失效,防爆破, (time+2与now比较) 3:手机号与验证码同时校验,防a手机用B验证码, 4:手机号一 ...
- 60 秒短信验证背后的危险
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! "互联网+"时代,每个人的手机号或多或少绑定了各种互联网应用账号.银行卡 ...
- 怎样防止恶意刷短信验证?
公司的app.网站希望实现短信注册.验证,有什么办法能防止恶意刷短信? 1.同一mac地址限制? 2.同一手机号码多次验证不成功就封号码? 有什么行之有效的建议吗? 在讨论防止恶意短信验证之前,我们先 ...
- android+自定义发彩信,Android实现获取短信验证码的功能以及自定义GUI短信验证
短信验证功能大家都很熟悉了.在很多地方都能见到,注册新用户或者短息验证支付等.短信验证利用短信验证码来注册会员,大大降低了非法注册,很大程度上提高了用户账户的安全性. 目前市面上已经有了很多提供短信验 ...
- php中短信验证大致流程,实现php手机短信验证功能的基本思路
现在很多网站为了避免用户烂注册,都在注册环节添加有手机短信验证功能,用户注册时需要短信验证码才可以,那么这种手机短信验证功能是如何实现的呢?其基本思路是什么呢?下面乐信小编就来为大家介绍下: 实现手机 ...
- 简单的短信验证功能的实现
相信有很多朋友在做三方登陆的时候会加入短信验证的功能,最近刚好被分配安排实现这一需求,本人新手一枚,特地去网上搜了资料,目前用的比较多的大汉.云通讯还有MOB的smssdk,对比之下,最终选择了完全免 ...
- 阿里云短信验证解决方案(java版)(redis存储)
阿里云短信验证解决方案(java版)(redis存储) 参考文章: (1)阿里云短信验证解决方案(java版)(redis存储) (2)https://www.cnblogs.com/Amos-Tur ...
最新文章
- 消息处理机制之Handler
- hibernate配置相关知识
- 20180315 代码错题(1)
- Android ListView 横向滑动删除 Item
- Application package 'AndroidManifest.xml' must have a minimum of 2 segments错误
- 表格里面怎么打多个√_Excel怎样在表格里打√?
- java记录pv,计算500万PV/每天的网站
- 在 Mac 上使用“网络实用工具”
- Redis的应用场景汇总
- Oracle数据库应用系统结构
- 文字识别_文字识别的应用
- java模板变量_IntelliJ IDEA实时模板变量
- java复习即基础知识点 思维导图
- 51单片机两只老虎c语言程序,基于51单片机蜂鸣器的两只老虎音乐代码
- kX3552 驱动、安装、插件集合贴
- 报童问题求解最大利润_选对方法,速解行测最大利润问题
- phpQuery采集乱码问题解决方案
- php聊天室发送表情,聊天室技术(六)-- 表情和动作_PHP
- sql,linq,lamd比较使用
- android 全景拼接软件,这款全景图片拼接软件很强大