细谈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

                
相关文章
相关标签/搜索