当前位置:Gxlcms > PHP教程 > php如何实现短信验证

php如何实现短信验证

时间:2021-07-01 10:21:17 帮助过:57人阅读

php实现短信验证的方法:首先接入短信服务;然后在网站信息提交页面请求发送信息;接着服务器向短信服务提供商通信,提交发送请求;最后短信服务提供商通过运营商将信息发送到用户的手机中。

php实现短信验证的方法:

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

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

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

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

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

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

586e38a685583bd0857e12006697121.png

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title></title>
  5. <script src="js/jquery-1.4a2.min.js" type="text/javascript"></script>
  6. <script type="text/javascript">
  7. /*-------------------------------------------*/
  8. var InterValObj; //timer变量,控制时间
  9. var count = 60; //间隔函数,1秒执行
  10. var curCount;//当前剩余秒数
  11. var code = ""; //验证码
  12. var codeLength = 6;//验证码长度
  13. function sendMessage() {
  14. curCount = count;
  15. var dealType; //验证方式
  16. tel = $(’#tel’).val();
  17. if(tel!=’’){
  18. //验证手机有效性
  19. var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
  20. if(!myreg.test($(’#tel’).val()))
  21. {
  22. alert(’请输入有效的手机号码!’);
  23. return false;
  24. }
  25. tel = $(’#tel’).val();
  26. //产生验证码
  27. for (var i = 0; i < codeLength; i++) {
  28. code += parseInt(Math.random() * 9).toString();
  29. }
  30. //设置button效果,开始计时
  31. $("#btnSendCode").attr("disabled", "true");
  32. $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
  33. InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
  34. //向后台发送处理数据
  35. $.ajax({
  36. type: "POST", //用POST方式传输
  37. dataType: "text", //数据格式:JSON
  38. url: ’yanzhengma.php’, //目标地址(根据实际地址)
  39. data: "&tel=" + tel + "&code=" + code,
  40. error: function (XMLHttpRequest, textStatus, errorThrown) { },
  41. success: function (msg){ }
  42. });
  43. }else{
  44. alert(’请填写手机号码’);
  45. }
  46. }
  47. //timer处理函数
  48. function SetRemainTime() {
  49. if (curCount == 0) {
  50. window.clearInterval(InterValObj);//停止计时器
  51. $("#btnSendCode").removeAttr("disabled");//启用按钮
  52. $("#btnSendCode").val("重新发送验证码");
  53. code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
  54. }
  55. else {
  56. curCount--;
  57. $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
  58. }
  59. }
  60. </script>
  61. </head>
  62. <body>
  63. <input name="tel" id=tel type="text" />
  64. <input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" /></p>
  65. </body>
  66. </html>
  67. 第三、调用短信服务器短信接口
  68. 笔者整理的页面是yanzhengma.php(具体根据服务商提供信息)
  69. <?php //提交短信
  70. $post_data = array();
  71. $post_data[’userid’] = 短信服务商提供ID;
  72. $post_data[’account’] = ’短信服务商提供用户名’;
  73. $post_data[’password’] = ’短信服务商提供密码’;
  74. // Session保存路径
  75. $sessSavePath = dirname(__FILE__)."/../data/sessions/";
  76. if(is_writeable($sessSavePath) && is_readable($sessSavePath)){
  77. session_save_path($sessSavePath);
  78. }
  79. session_register(’mobliecode’);
  80. $_SESSION[’mobilecode’] = $_POST["code"];
  81. $content=’短信验证码:’.$_POST["code"].’【短信验证】’;
  82. $post_data[’content’] = mb_convert_encoding($content,’utf-8’, ’gb2312’); //短信内容需要用urlencode编码下
  83. $post_data[’mobile’] = $_POST["tel"];
  84. $post_data[’sendtime’] = ’’; //不定时发送,值为0,定时发送,输入格式YYYYMMDDHHmmss的日期值
  85. $url=’http://IP:8888/sms.aspx?action=send’;
  86. $o=’’;
  87. foreach ($post_data as $k=>$v)
  88. {
  89. $o.="$k=".$v.’&’;
  90. }
  91. $post_data=substr($o,0,-1);
  92. $ch = curl_init();
  93. curl_setopt($ch, CURLOPT_POST, 1);
  94. curl_setopt($ch, CURLOPT_HEADER, 0);
  95. curl_setopt($ch, CURLOPT_URL,$url);
  96. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
  97. //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果需要将结果直接返回到变量里,那加上这句。
  98. $result = curl_exec($ch);
  99. ?>
  100. 第四:提交表单信息时对短信验证码验证
  101. //手机验证码开始
  102. session_start();
  103. $svalitel = $_SESSION[’mobilecode’];
  104. $vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));
  105. if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)
  106. {
  107. ResetVdValue();
  108. //echo "Pageviews=".$vdcodetel;
  109. ShowMsg("手机验证码错误!", ’-1’);
  110. exit();
  111. }

想了解更多编程学习,敬请关注php培训栏目!

以上就是php如何实现短信验证的详细内容,更多请关注gxlcms其它相关文章!

人气教程排行