細談PHP認證明例開發----my note

   PHP網站認證插件開發,主要是便於對網站會員的管理,典型網站如:支付寶,淘寶網,豬八戒,時間財富網的各種認證等。。PHP網站認證有不少,包括身份認證,郵箱,手機認證,支付認證等等,通常的CMS都會提供這類插件,沒有,只有本身自定義。 php

下面是實例介紹 html

  一 PHP身份證明名認證示例代碼 json

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
<!--?php
// +----------------------------------------------------------------------
// | JuhePHP [ NO ZUO NO DIE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2010-2015  http://juhe.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: Juhedata <info@juhe.cn-->
// +----------------------------------------------------------------------
 
//----------------------------------
// 身份證明名認證 - 聚合數據
// 在線接口文檔: http://www.juhe.cn/docs/103
//----------------------------------
 
header('Content-type:text/html;charset=utf-8');
 
 
//配置您申請的appkey
$appkey = "*********************";
 
 
 
 
//************1.真實姓名和身份證號碼判斷是否一致************
$params = array(
      "idcard" => "3303291989********",//身份證號碼
      "realname" => "東好帥",//真實姓名
      "key" => $appkey,//應用APPKEY(應用詳細頁查詢)
);
$paramstring = http_build_query($params);
$content = juhecurl($url,$paramstring);
$result = json_decode($content,true);
if($result){
    if($result['error_code']=='0'){
        if($result['result']['res'] == '1'){
            echo "身份證號碼和真實姓名一致";
        }else{
            echo "身份證號碼和真實姓名不一致";
        }
        #print_r($result);
    }else{
        echo $result['error_code'].":".$result['reason'];
    }
}else{
    echo "請求失敗";
}
//**************************************************
 
 
 
 
 
/**
 * 請求接口返回內容
 * @param  string $url [請求的URL地址]
 * @param  string $params [請求的參數]
 * @param  int $ipost [是否採用POST形式]
 * @return  string
 */
function juhecurl($url,$params=false,$ispost=0){
    $httpInfo = array();
    $ch = curl_init();
 
    curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
    curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' );
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
    curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    if( $ispost )
    {
        curl_setopt( $ch , CURLOPT_POST , true );
        curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
        curl_setopt( $ch , CURLOPT_URL , $url );
    }
    else
    {
        if($params){
            curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
        }else{
            curl_setopt( $ch , CURLOPT_URL , $url);
        }
    }
    $response = curl_exec( $ch );
    if ($response === FALSE) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
    $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
    curl_close( $ch );
    return $response;
}

      

二,php如何對手機號碼進行驗證


驗證手機號碼咱們都是利用php正則表達試驗證了,手機號的規則是長度11位而後是13,15,18等等開頭,這個咱們只要加以分類規劃並可實現完美手機號碼驗證正則了。 app

你們都應該有這個常識,中國的手機號碼都是以數字「1」開頭,而後利用「0~9」10個數字組成的11位數字組合,那麼咱們的驗證規則確定要根據這個思路來寫。 curl

根據上面的簡單思路,咱們即可以寫下如下的驗證代碼,代碼以下: 函數

  1. <?php    
  2.     //本代碼僅僅是提供一些思路    
  3.     //距離實際應用還有一些距離    
  4.      $mobile = '15858588585';    
  5.     //下面的1即是手機的第一位數字必須爲數字1    
  6.     //[0-9]指後面的數字均爲0~9的數字    
  7.     //{9}這中間的9指的是手機號碼除了第一位數外,其餘要重複10次,恰好就是11位數了    
  8.     if(!preg_match('/^1([0-9]{9})/',$mobile)) exit('您的手機號碼不正確');    
  9. ?> 

但上面的代碼顯然是不夠嚴謹的,由於這樣,即便「18888888888」這樣的手機號碼也能經過驗證了,所以咱們還要對其進行更爲嚴格的驗證,在嚴格以前請讓咱們先來看看中國常見的手機號碼前三位都有那些: post

移動手機號碼:13四、13五、13六、13七、13八、13九、150、15一、157(TD)、15八、15九、18七、188 網站

聯通手機號碼:130、13一、13二、15二、15五、15六、18五、186    ui

電信手機號碼:13三、15三、180、18九、(1349衛通)  url

那麼根據上面的特徵,咱們就能夠將代碼修改爲這樣的規則了,代碼以下:

  1. <?php 
  2.      function checkMobile($str
  3.      { 
  4.          $pattern = 「/^(13|15)d{9}$/」; 
  5.          if (preg_match($pattern,$str)) 
  6.          { 
  7.               Return true; 
  8.          } 
  9.          else 
  10.          { 
  11.              Return false; 
  12.          } 
  13.      } 
  14.     //調用函數 
  15.     $str = checkMobile(「15800000001″); 
  16.      if($str
  17.      { 
  18.      echo(「符合手機號碼標準」); 
  19.      } 
  20.      else 
  21.      { 
  22.      echo(「不符合手機號碼標準」); 
  23.      } 
  24.     ?> 

上面只能騅13,15開頭的,若是有新段就不行了,咱們可加以修改,代碼以下:

  1. function is_mobile($str){    
  2. return preg_match("/^(((d{3}))|(d{3}-))?13d{9}$/"$str);    
  3. }  

這樣就能夠驗證全部的手機號碼了.

觸類旁通,使用PHP還能夠寫郵箱,支付類的認證插件等等,代碼省略。

adiOS

                
相關文章
相關標籤/搜索