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地址

短信验证码校验的实现相关推荐

  1. Java用户注册手机短信验证码校验功能实现

    验证用户提交的手机短信验证码,如果验证码错误就跳回到当前页面.在短信验证码未填写或未正确填写时,就关闭底下注册按钮的功能,只有短信验证码通过校验后才打开注册按钮的功能.第二种方式是所有输入项全部填写完 ...

  2. 【django】用户注册时短信验证码校验、避免频繁发送短信验证码【17】

    注册时短信验证后端逻辑 class CheckSMScodeView(View):def get(self,request,phone):'''用户注册时短信验证码的校验功能:param reques ...

  3. django-实现登录短信验证

    功能演示 核心任务 前端功能: 点击按钮Ajax调用发送验证码功能 输完验证码后Ajax调用验证功能 后端功能: 功能1:发送验证码功能 功能2:验证码检查 后台核心逻辑(不需要手写) 功能3:发短信 ...

  4. 短信验证,图形验证码校验

    短信验证,防爆破,防轰炸,防绕过,防套用 1:俩分钟有效,防短时间多次发送轰炸 2:俩分钟后失效,防爆破, (time+2与now比较) 3:手机号与验证码同时校验,防a手机用B验证码, 4:手机号一 ...

  5. 60 秒短信验证背后的危险

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! "互联网+"时代,每个人的手机号或多或少绑定了各种互联网应用账号.银行卡 ...

  6. 怎样防止恶意刷短信验证?

    公司的app.网站希望实现短信注册.验证,有什么办法能防止恶意刷短信? 1.同一mac地址限制? 2.同一手机号码多次验证不成功就封号码? 有什么行之有效的建议吗? 在讨论防止恶意短信验证之前,我们先 ...

  7. android+自定义发彩信,Android实现获取短信验证码的功能以及自定义GUI短信验证

    短信验证功能大家都很熟悉了.在很多地方都能见到,注册新用户或者短息验证支付等.短信验证利用短信验证码来注册会员,大大降低了非法注册,很大程度上提高了用户账户的安全性. 目前市面上已经有了很多提供短信验 ...

  8. php中短信验证大致流程,实现php手机短信验证功能的基本思路

    现在很多网站为了避免用户烂注册,都在注册环节添加有手机短信验证功能,用户注册时需要短信验证码才可以,那么这种手机短信验证功能是如何实现的呢?其基本思路是什么呢?下面乐信小编就来为大家介绍下: 实现手机 ...

  9. 简单的短信验证功能的实现

    相信有很多朋友在做三方登陆的时候会加入短信验证的功能,最近刚好被分配安排实现这一需求,本人新手一枚,特地去网上搜了资料,目前用的比较多的大汉.云通讯还有MOB的smssdk,对比之下,最终选择了完全免 ...

  10. 阿里云短信验证解决方案(java版)(redis存储)

    阿里云短信验证解决方案(java版)(redis存储) 参考文章: (1)阿里云短信验证解决方案(java版)(redis存储) (2)https://www.cnblogs.com/Amos-Tur ...

最新文章

  1. 消息处理机制之Handler
  2. hibernate配置相关知识
  3. 20180315 代码错题(1)
  4. Android ListView 横向滑动删除 Item
  5. Application package 'AndroidManifest.xml' must have a minimum of 2 segments错误
  6. 表格里面怎么打多个√_Excel怎样在表格里打√?
  7. java记录pv,计算500万PV/每天的网站
  8. 在 Mac 上使用“网络实用工具”
  9. Redis的应用场景汇总
  10. Oracle数据库应用系统结构
  11. 文字识别_文字识别的应用
  12. java模板变量_IntelliJ IDEA实时模板变量
  13. java复习即基础知识点 思维导图
  14. 51单片机两只老虎c语言程序,基于51单片机蜂鸣器的两只老虎音乐代码
  15. kX3552 驱动、安装、插件集合贴
  16. 报童问题求解最大利润_选对方法,速解行测最大利润问题
  17. phpQuery采集乱码问题解决方案
  18. php聊天室发送表情,聊天室技术(六)-- 表情和动作_PHP
  19. sql,linq,lamd比较使用
  20. android 全景拼接软件,这款全景图片拼接软件很强大

热门文章

  1. android 文件管理器
  2. java中类成员,java中类成员的限定词
  3. 华为防火墙笔记-安全策略
  4. 1--request模块
  5. SAS逻辑回归之二分类
  6. 海贼王python代码_这顶海贼王的帽子,我Python给你带上了 | 【人脸识别应用】
  7. 硬盘是计算机的 奥鹏,奥鹏计算机应用基础一教学内容.docx
  8. .net性能最高的EF分页写法
  9. iOS常用第三方库大全
  10. Scala基本语法-面向对象