今、ユーザー情報の信憑性を確保するために建設現場時のサイトは、多くの場合、このコードは、認証されたユーザーのみが登録でき送る携帯電話ユーザーにテキストメッセージを送信することを選択したので、我々は確実にそのユーザーの連絡先情報データ精度の100%抵抗するだけでなく、登録するための最も便利な方法をユーザーに提供します。
その後、我々が今日それを見て、SMSの原則、示されているように
仕事の開発プロセス:
まず、基本的な考え方PHP SMS検証関数
1は、メッセージングサービスへのSMSサービスプロバイダ、アクセスを見つけるために
2を、ウェブサイトの情報のページリクエスト情報提出
3を、SMSサービスプロバイダへの通信サーバは、送信するリクエストを送信します
キャリアを介してユーザの携帯電話に情報を送信するために4、SMSサービスプロバイダ
第二:フロントページの効果を達成するために、SMS検証電話番号
<!DOCTYPE html>
<html lang="en">
<head>
<title>郑州传智播客</title>
<meta charset="UTF-8">
<meta name="Author" content="PHP就业老师"/>
<style type="text/css">
*{margin:0;padding:0;}
</style>
<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
var InterValObj; //timer变量,控制时间
var count = 60; //间隔函数,1秒执行
var curCount;//当前剩余秒数
function codeRandom(chars) {
var res="";
for(var i=0;i<chars;i++){
res += Math.floor(Math.random()*10);
}
return res;
}
//timer处理函数
function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止计时器
$("#sub").removeAttr("disabled");//启用按钮
$("#sub").val("重新发送验证码");
code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
}
else {
curCount--;
$("#sub").val("请在" + curCount + "秒内输入验证码");
}
}
//获取手机号码
$(function () {
$("#sub").click(function () {
var phone=$("#phone").val(); //获取手机号码
curCount = count;
if(phone!=''){
//验证手机有效性
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
if(!myreg.test($('#phone').val()))
{
alert('请输入有效的手机号码!');
return false;
}
phone = $('#phone').val();
//验证码(随机生成)
var code= codeRandom(4);
//设置button效果,开始计时
$("#sub").attr("disabled", "true");
$("#sub").val("请在" + curCount + "秒内输入验证码");
InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
//发送数据到后台 通过Ajax
$.ajax({
//设置的参数
type: "post",
url: "data.php",
data:{"code":code,"phone":phone},
success:function (msg) {
alert(msg);
}
});}else{
alert('请填写手机号码');
}
});
});
</script>
</head>
<body>
<h1>PHP-短信验证码</h1>
手机验证码:<input type="text" name="phone" id="phone">
<input id="sub" type="button" value="发送验证码" />
</body>
</html>
第三に、SMSサーバーのSMSインターフェイスを呼び出します
?php
/**
* Created by PhpStorm.
* User: Leo
* Date: 2017/8/30
* Time: 14:59
*/
//$_post
$phone= isset($_POST['phone'])?$_POST['phone']:'';
$code = isset($_POST['code'])?$_POST['code']:'';
require (dirname(__FILE__).'/config.php');
require (dirname(__FILE__).'/SendSMS.php');
//实例化短信发送类
$sms= new SendSMS($options['account'],$options['password']);
$context='验证码'.$code;
$res=$sms->send($phone,$context);
if ($res){
echo "成功";
}else{
echo "失败";
私たちは優雅なコーディングする必要があるため、別々のコードを書くのは簡単ではショートメッセージクラスを送信するために、後でそれを再利用し、特に、特定のコードを見てカプセル化します:
<?php
/**
* Created by PhpStorm.
* User: Leo
* Date: 2017/8/30
* Time: 15:26
*/
/**
* 设置用户信息
*/
class SendSMS{
const SENDURL='http://gd.ums86.com:8899/sms/Api/Send.do';
private $_un;
private $_pw;
function __construct($user,$pwd){
$this->_un=$user;
$this->_pw=$pwd;
}
function send($phone,$content,$isreport=0){
//发送数据
$data=array(
'un'=>$this->_un,
'pw'=>$this->_pw,
'sm'=>$content,
'da'=>$phone,
'rd'=>$isreport,
'rf'=>2,
'tf'=>3,
'dc'=>15,
);
$url=SendSMS::SENDURL.'?'.http_build_query($data);
$this->curlGet($url);
}
public function curlGet($url){
$ch= curl_init();
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_URL,$url);
$res=curl_exec($ch);
curl_close($ch);
return $res;
}
}
SendSMS内部、サードパーティの認証コードSMSサービスプロバイダ内部のあなたのコード例を見ることができるいくつかの方法では、基本的な機能は類似しているので、私たちがメッセージを送信するための独自のクラスを実現し、それは比較的簡単です。
最後に、私たちは、自分のSMS送信、検証コードの1を実現しました
最後に、あなたはそれを学びますか?