博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
细谈PHP认证实例开发----my note
阅读量:6252 次
发布时间:2019-06-22

本文共 3844 字,大约阅读时间需要 12 分钟。

hot3.png

   PHP网站认证插件开发,主要是便于对网站会员的管理,典型网站如:支付宝,淘宝网,猪八戒,时间财富网的各类认证等。。PHP网站认证有很多,包括身份认证,邮箱,手机认证,支付认证等等,一般的CMS都会提供这类插件,没有,只有自己自定义。

下面是实例介绍

  一 身份证实名认证示例代码

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 
// +----------------------------------------------------------------------
// | Author: Juhedata <info@juhe.cn-->
// +----------------------------------------------------------------------
 
//----------------------------------
// 身份证实名认证 - 聚合数据
// 在线接口文档:
//----------------------------------
 
header('Content-type:text/html;charset=utf-8');
 
 
//配置您申请的appkey
$appkey = "*********************";
 
 
 
 
//************1.真实姓名和身份证号码判断是否一致************
$url = " ";
$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等等开头,这个我们只要加以分类规划并可实现完美手机号码验证正则了。

大家都应该有这个常识,中国的手机号码都是以数字“1”开头,然后利用“0~9”10个数字组成的11位数字组合,那么我们的验证规则肯定要根据这个思路来写。

根据上面的简单思路,我们便可以写下以下的验证代码,代码如下:

  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”这样的手机号码也能通过验证了,因此我们还要对其进行更为严格的验证,在严格之前请让我们先来看看中国常见的手机号码前三位都有那些:

移动手机号码:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188

联通手机号码:130、131、132、152、155、156、185、186   

电信手机号码:133、153、180、189、(1349卫通) 

那么根据上面的特征,我们就可以将代码修改成这样的规则了,代码如下:

  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

                

  

转载于:https://my.oschina.net/bigfool007139/blog/614391

你可能感兴趣的文章
Kentico中的skin.css的加载
查看>>
elasticsearch6.3.1 安装以及配置IK 使用
查看>>
闪聊的beta版推出了
查看>>
WCF光芒下的Web Service
查看>>
GnuPG笔记
查看>>
批处理常用命令总结2
查看>>
ubuntu双网卡bonding配置(转)
查看>>
Ubuntu 14.04 关于 TensorFlow 环境的配置
查看>>
漂亮灵活设置的jquery通知提示插件toastr
查看>>
java多线程系类:基础篇:08之join
查看>>
TableView编辑状态下跳转页面的崩溃处理
查看>>
c#.net常用的小函数和方法集
查看>>
微软能否撑起Silverlight的明天?
查看>>
遍历文件夹
查看>>
js和html标签的混合使用
查看>>
生成不重复随机数
查看>>
Kinect for Windows SDK 1.5 的改进及新特性
查看>>
jQuery-倒计时
查看>>
expect语法基础: while、for 循环、if 语句的用法示例
查看>>
ubuntu 9.04 的 NTFS 分区自动加载
查看>>