国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務器之家 - 編程語言 - PHP教程 - php實現的IMEI限制的短信驗證碼發送類

php實現的IMEI限制的短信驗證碼發送類

2020-09-22 13:02PHP教程網 PHP教程

本文給大家分享的是可以檢驗手機號碼與IMEI的短信驗證碼發送的php類,十分的實用,這里推薦給大家,有需要的小伙伴可以參考下。

php實現的IMEI限制的短信驗證碼發送類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
class Api_Sms{
  const EXPIRE_SEC = 1800;    // 過期時間間隔
  const RESEND_SEC = 60;     // 重發時間間隔
  const ONE_DAY_FREQ = 5;    // 每日向同一個手機號發短信的次數
  const ONE_DAY_IMEI_COUNT = 3; // 每日向同一個手機號發送短信的IMEI個數
 
  public $error = array();
 
 
  /**
   * 向指定手機號發送驗證碼
   * @param $mobile
   * @param $imei
   * @return bool
   */
  public function sendVerifyCode($mobile, $imei) {
    if(!$this->isMobile($mobile)) {
      $this->error = array('code' => -1, 'msg' => '這個手機號很奇葩哦,請正確輸入后重試');
      return false;
    }
 
    $redis = Api_Common::redis();
    $vcKey = 'VC_'.$mobile;
    $limitKey = 'VC_LIMIT_'.$mobile;
 
    // 驗證碼重發限制
    $data = json_decode($redis->get($vcKey), true);
    if($data && time() < $data['resend_expire']) {
      $this->error = array('code' => -1, 'msg' => '短信已在1分鐘內發出,請耐心等待');
      return false;
    }
 
    // 手機號及IMEI限制
    $sendCnt = $redis->zScore($limitKey, $imei);
    if($sendCnt && $sendCnt >= self::ONE_DAY_FREQ) {
      $this->error = array('code' => -1, 'msg' => '沒收到短信?請稍等或檢查短信是否被屏蔽');
      return false;
    }
    $imeiCnt = $redis->zCard($limitKey);
    if($imeiCnt >= self::ONE_DAY_IMEI_COUNT && !$sendCnt) {
      $this->error = array('code' => -1, 'msg' => '已超過驗證碼發送設備限制');
      return false;
    }
 
    // 獲取驗證碼
    if(!$data) {
      $vc = strval(rand(100000, 999999));
      $data = array('vc' => $vc, 'resend_expire' => 0);
      $redis->set($vcKey, json_encode($data));
      $redis->expire($vcKey, self::EXPIRE_SEC); // 設置驗證碼過期時間
    }
    $vc = $data['vc'];
 
    $content = '安全驗證碼:'.$vc;
    $result = $this->send($mobile, $content);
    if($result) {
      // 重設重發時限
      $data['resend_expire'] = time() + self::RESEND_SEC;
      $ttl = $redis->ttl($vcKey);
      $redis->set($vcKey, json_encode($data));
      $redis->expire($vcKey, $ttl);
 
      // 設置手機號與IMEI限制
      $redis->zIncrBy($limitKey, 1, $imei);
      $redis->expireAt($limitKey, strtotime(date('Y-m-d',strtotime('+1 day'))));
    }
    return $result;
  }
 
  /**
   * 向指定手機號發送短信
   * @param $mobile
   * @param $content
   * @return bool
   */
  public function send($mobile, $content){
    // TODO 調用具體服務商API
    return true;
  }
 
  /**
   * 判斷是否為合法手機號
   * @param $mobile
   * @return bool
   */
  private function isMobile($mobile) {
    if(preg_match('/^1\d{10}$/', $mobile))
      return true;
    return false;
  }
 
  /**
   * 驗證短信驗證碼
   * @param $mobile
   * @param $vc
   * @return bool
   */
  public function checkVerifyCode($mobile, $vc) {
    $vcKey = 'VC_'.$mobile;
    $vcData = json_decode(Api_Common::redis()->get($vcKey), true);
    if($vcData && $vcData['vc'] === $vc) {
      return true;
    }
    return false;
  }
 
  /**
   * 清除驗證碼
   * @param $mobile
   */
  public function cleanVerifyCode($mobile) {
    $redis = Api_Common::redis();
    $vcKey = 'VC_'.$mobile;
    $limitKey = 'VC_LIMIT_'.$mobile;
    $redis->del($vcKey);
    $redis->del($limitKey);
  }
}

另付其他網友實現的短信驗證碼代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?
/*--------------------------------
功能:   中國短信網PHP HTTP接口 發送短信
修改日期:  2009-04-08
說明:   http://http.c123.com/tx/?uid=用戶賬號&pwd=MD5位32密碼&mobile=號碼&content=內容
狀態:
  100 發送成功
  101 驗證失敗
  102 短信不足
  103 操作失敗
  104 非法字符
  105 內容過多
  106 號碼過多
  107 頻率過快
  108 號碼內容空
  109 賬號凍結
  110 禁止頻繁單條發送
  111 系統暫定發送
  112 號碼不正確
  120 系統升級
--------------------------------*/
$uid = '9999';   //用戶賬號
$pwd = '9999';   //密碼
$mobile = '13912341234,13312341234,13512341234,02122334444'//號碼
$content = '中國短信網PHP HTTP接口';    //內容
//即時發送
$res = sendSMS($uid,$pwd,$mobile,$content);
echo $res;
 
//定時發送
/*
$time = '2010-05-27 12:11';
$res = sendSMS($uid,$pwd,$mobile,$content,$time);
echo $res;
*/
function sendSMS($uid,$pwd,$mobile,$content,$time='',$mid='')
{
  $http = 'http://http.c123.com/tx/';
  $data = array
    (
    'uid'=>$uid,         //用戶賬號
    'pwd'=>strtolower(md5($pwd)),  //MD5位32密碼
    'mobile'=>$mobile,        //號碼
    'content'=>$content,     //內容
    'time'=>$time,    //定時發送
    'mid'=>$mid           //子擴展號
    );
  $re= postSMS($http,$data);     //POST方式提交
  if( trim($re) == '100' )
  {
    return "發送成功!";
  }
  else
  {
    return "發送失敗! 狀態:".$re;
  }
}
 
function postSMS($url,$data='')
{
  $row = parse_url($url);
  $host = $row['host'];
  $port = $row['port'] ? $row['port']:80;
  $file = $row['path'];
  while (list($k,$v) = each($data))
  {
    $post .= rawurlencode($k)."=".rawurlencode($v)."&"; //轉URL標準碼
  }
  $post = substr( $post , 0 , -1 );
  $len = strlen($post);
  $fp = @fsockopen( $host ,$port, $errno, $errstr, 10);
  if (!$fp) {
    return "$errstr ($errno)\n";
  } else {
    $receive = '';
    $out = "POST $file HTTP/1.1\r\n";
    $out .= "Host: $host\r\n";
    $out .= "Content-type: application/x-www-form-urlencoded\r\n";
    $out .= "Connection: Close\r\n";
    $out .= "Content-Length: $len\r\n\r\n";
    $out .= $post;  
    fwrite($fp, $out);
    while (!feof($fp)) {
      $receive .= fgets($fp, 128);
    }
    fclose($fp);
    $receive = explode("\r\n\r\n",$receive);
    unset($receive[0]);
    return implode("",$receive);
  }
}
?>

以上所述就是本文的全部內容了,希望大家能夠喜歡。

延伸 · 閱讀

精彩推薦
554
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 色综合欧美 | 天天干天天草 | 精品久久久久久久久久久久 | 日韩成人av电影在线观看 | 性高湖久久久久久久久aaaaa | 欧美亚洲国产激情 | 欧美日韩一区在线 | 国内自拍偷拍 | 一级片免费在线观看视频 | 国产黄色免费网站 | 久久伊人一区 | 在线免费观看毛片 | 欧美专区在线观看 | 久久99视频 | 日韩在线电影 | 亚洲精选一区二区 | 精品国产一区二区在线 | 成人免费大片黄在线播放 | 中国大陆高清aⅴ毛片 | 国产精品久久久久久久 | 久久综合久久综合久久综合 | 国产女爽爽视频精品免费 | 久久久久久久久久久免费av | 久久久久av69精品 | 日韩福利视频 | 91久久精品国产91久久 | 国产精品3区 | 色视频在线播放 | 天堂av在线免费观看 | 中文字幕日韩视频 | 在线中文字幕视频 | 北条麻妃99精品青青久久主播 | 午夜精品一区二区三区在线视频 | 亚洲精品久久久一区二区三区 | 免费视频一区 | 久久久精品影院 | 久久精品一级 | 中文字幕在线观看一区二区三区 | 亚洲国产一区二区三区 | 亚洲男人网 | 久久精品久久久久电影 |