如何实现php手机短信验证功能

时间:2023-02-06 19:49:32

http://www.qdexun.cn/jsp/news/shownews.do?method=GetqtnewsdetailAction&id=1677

下载php源代码

现在网站在建设网站时为了保证用户信息的真实性,往往会选择发短信给用户手机发验证码信息,只有通过验证的用户才可以注册,这样保证了用户的联系信息资料的100%的准确性 。今天笔者就跟大家分享一下如何实现php手机短信验证功能,希望对大家有所帮助。

如何实现php手机短信验证功能

第一、实现php手机短信验证功能的基本思路

1、要找到短信服务提供商,接入短信服务

2、在网站信息提交页面请求发送信息

3、服务器向短信服务提供商通信,提交发送请求

4、短信服务提供商通过运营商将信息发送到用户的手机中

二、手机号码短信验证前台页面效果实现

如何实现php手机短信验证功能

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml">

 <head>

     <title></title>

     <script src="js/jquery-1.4a2.min.js" type="text/javascript"></script>

               <script type="text/javascript">

                             /*-------------------------------------------*/

                             var InterValObj; //timer变量,控制时间

                             var count = 60; //间隔函数,1秒执行

                             var curCount;//当前剩余秒数

                             var code = ""; //验证码

                             var codeLength = 6;//验证码长度

                             function sendMessage() {

                                                  curCount = count;

                                                  var dealType; //验证方式

                             tel = $(’#tel’).val();

                   if(tel!=’’){

                        //验证手机有效性

                       var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; 

             if(!myreg.test($(’#tel’).val())) 

           { 

              alert(’请输入有效的手机号码!’); 

              return false; 

           } 

                      tel = $(’#tel’).val();

                         //产生验证码

                             for (var i = 0; i < codeLength; i++) {

                                                         code += parseInt(Math.random() * 9).toString();

                                                  }

                                                  //设置button效果,开始计时

                                                         $("#btnSendCode").attr("disabled", "true");

                                                         $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");

                                                         InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次

                             //向后台发送处理数据

                 $.ajax({

                     type: "POST", //用POST方式传输

                     dataType: "text", //数据格式:JSON

                     url: ’yanzhengma.php’, //目标地址(根据实际地址)

                     data: "&tel=" + tel + "&code=" + code,

                     error: function (XMLHttpRequest, textStatus, errorThrown) { },

                     success: function (msg){ }

                 });

                      }else{

                      alert(’请填写手机号码’);

                       }

            }

                             //timer处理函数

                      function SetRemainTime() {

                                    if (curCount == 0) {                

                                           window.clearInterval(InterValObj);//停止计时器

                                           $("#btnSendCode").removeAttr("disabled");//启用按钮

                                           $("#btnSendCode").val("重新发送验证码");

                                           code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效    

                                    }

                                    else {

                                           curCount--;

                                           $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");

                                    }

                             }

     </script>

 </head>

 <body>

 <input name="tel" id=tel type="text" />

         <input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" /></p>

 </body>

 </html>

 第三、调用短信服务器短信接口

 笔者整理的页面是yanzhengma.php(具体根据服务商提供信息)

 <?php //提交短信 

 $post_data = array(); 

 $post_data[’userid’] = 短信服务商提供ID; 

 $post_data[’account’] = ’短信服务商提供用户名’; 

 $post_data[’password’] = ’短信服务商提供密码’; 

 // Session保存路径

 $sessSavePath = dirname(__FILE__)."/../data/sessions/";

 if(is_writeable($sessSavePath) && is_readable($sessSavePath)){ 

        session_save_path($sessSavePath);

 }

 session_register(’mobliecode’);

 $_SESSION[’mobilecode’] = $_POST["code"];

 $content=’短信验证码:’.$_POST["code"].’【短信验证】’;

 $post_data[’content’] = mb_convert_encoding($content,’utf-8’, ’gb2312’); //短信内容需要用urlencode编码下 

 $post_data[’mobile’] = $_POST["tel"]; 

 $post_data[’sendtime’] = ’’; //不定时发送,值为0,定时发送,输入格式YYYYMMDDHHmmss的日期值 

 $url=’http://IP:8888/sms.aspx?action=send’; 

 $o=’’; 

 foreach ($post_data as $k=>$v) 

 { 

   $o.="$k=".$v.’&’; 

 } 

 $post_data=substr($o,0,-1); 

 $ch = curl_init(); 

 curl_setopt($ch, CURLOPT_POST, 1); 

 curl_setopt($ch, CURLOPT_HEADER, 0); 

 curl_setopt($ch, CURLOPT_URL,$url); 

 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 

 //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要将结果直接返回到变量里,那加上这句。 

 $result = curl_exec($ch); 

 ?>

 第四:提交表单信息时对短信验证码验证

 //手机验证码开始

         session_start();

               $svalitel = $_SESSION[’mobilecode’];

               $vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));

             if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)

             {

                 ResetVdValue();

                             //echo "Pageviews=".$vdcodetel;

                             ShowMsg("手机验证码错误!", ’-1’);

                 exit();

             }

如何实现php手机短信验证功能的更多相关文章

  1. 完整的Android手机短信验证源码

    短信验证功能我分两个模块来说,短信验证码的后台和代码实现短信验证码的功能. 一.短信验证码的后台      1.注册Mob账号:http://www.mob.com/#/login 2.注册成功之后, ...

  2. Springboot下实现阿里云短信验证功能&lpar;含代码&rpar;

    Springboot下实现阿里云短信验证功能 一 开通阿里云短信服务 阿里云官网注册登录 找到短信服务并开通 打开短信服务的管理台 在国内消息那栏中添加签名管理和模板管理(按照格式要求去写) 在右上角 ...

  3. Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用

    近来由于项目需要,需要用到手机短信验证码的功能,其中最主要的是用到了第三方提供的短信平台接口WebService客户端接口,下面我把我在项目中用到的记录一下,以便给大家提供个思路,由于本人的文采有限, ...

  4. 四:java调接口实现发送手机短信验证码功能

    1.点击获取验证码之前的样式: 2.输入正确的手机号后点击获取验证码之后的样式: 3.如果手机号已经被注册的样式: 4.如果一个手机号一天发送超过3次就提示不能发送: 二:前台的注册页面的代码:reg ...

  5. ASP&period;NET MVC 手机短信验证

    本文来自于stoneniqiu的文章,原文地址 http://www.cnblogs.com/stoneniqiu/p/6234002.html 1.注册一个应用 得到AppKey 和 App Sec ...

  6. AndroidStudio短信验证功能收不到验证码

    http://mob.com/第三方接口获取地址: 登陆过后点我的后台即可上传,管理应用.需注意的是,即使验证不通过,只要整合了短信验证的Jar包,每天都有20条免费验证短信.现在的mob.com只支 ...

  7. 基于ThinkPHP与阿里大于的PHP短信验证功能

    https://blog.csdn.net/s371795639/article/details/53381274 PHP阿里大鱼短信验证 第一步 登陆阿里大于注册账号,在用户管理中心创建应用,确定A ...

  8. 利用twilio进行手机短信验证

    首先要注册 twilio 账号但是由于twilio人机验证用的是Goole所有注册需要FQ 完成后去免费获取15元使用 然后 pip install twilio 注册完成后会在个人首页显示你的免费金 ...

  9. sendsms短信验证功能实现代码

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name ...

随机推荐

  1. IDE有毒

    程序员按项目性质大致有三种:写Demo的.写Proto的.写成品的:按项目开发周期大致有:写开头的.写中间的.写结尾的. Demo是样品,主要是表面上初步实现,临时忽悠客户用的,不一定要求继续演化: ...

  2. Cogs 14&period; &lbrack;网络流24题&rsqb; 搭配飞行员

    这道题其实蛮好想的,因为分为正,副飞行员.所以就把正飞行员当作Boy,副飞行员当作Girl.然后做Hungry即可. #include<bits/stdc++.h> using names ...

  3. centos 如何清理&sol;dev&sol;vda1系统盘

    df-h检查一台服务器磁盘使用空间,发现磁盘已经使用了100% 思路是: 1.cd /usr 2.du -sh * 看哪个目录占用空间大 3.重复前两步,根据实际情况删除或者移走 4.日志的话可以运行 ...

  4. IO流的练习 —— 创建用户注册、登陆案例

    把上次用集合做的时候的分析拿出来 需求: 用户登录注册案例 按照如下操作,可以让我们更符合面向对象思想: A:这个案例有哪些类 B:每个类中又有哪些东西 C:类与类之间的关系 分析: A:这个案例有哪 ...

  5. spoj 78

    数学  组合 隔板法 #include <iostream> #include <cstring> #include <cstdio> #include <s ...

  6. 兼容现有jQuery API的轻量级JavaScript库:Zepo

    Zepo是一个JavaScript框架,其特点是兼容现有jQuery API的同时,自身体积十分小:它与jQuery有着类似的API.如果你会jQuery,那么也就会使用Zepto了. $('div' ...

  7. VMware Player安装centos

    用VMware Player安装centos 到物理硬盘 想要學Linux,但卻不知道如何弄成雙系統?那就使用用虛擬機器來安裝Linux.使用虛體機器來玩,好處除了好裝之外,也不怕把電腦搞壞,不論你怎 ...

  8. C&plus;&plus;学习笔记第三天:类、虚函数、双冒号

    类 class Box { public: double length; // 盒子的长度 double breadth; // 盒子的宽度 double height; // 盒子的高度 }; 类成 ...

  9. BZOJ&lowbar;1858&lowbar;&lbrack;Scoi2010&rsqb;序列操作&lowbar;线段树

    BZOJ_1858_[Scoi2010]序列操作_线段树 Description lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询 ...

  10. JDK新特性之可变个数的形参的方法

    可变个数的形参的方法:1.格式:对于方法的形参来说:数据类型...形参名2.可变个数的形参的方法与同名的方法之间可以构成重载3.可变个数的形参在调用时,个数从0开始,到无穷都可以(在调用这个方法时,s ...