php 一个通用信用卡验证类

内容摘要
这篇文章主要为大家详细介绍了php 一个通用信用卡验证类,具有一定的参考价值,可以用来参考一下。

对一个通用的信用卡验证php类对此感兴趣的朋友,看看idc笔记做的技术笔记!一个
文章正文

这篇文章主要为大家详细介绍了php 一个通用信用卡验证类,具有一定的参考价值,可以用来参考一下。

对一个通用的信用卡验证php类对此感兴趣的朋友,看看idc笔记做的技术笔记!一个通用的信用卡验证的PHP类 信用卡验证解决方案(PHP版) 3.5版描述 信用卡验证解决方案?采用了四步过程,以确保信用卡号码键入正确。这个程序准确地从美国运通,澳大利亚银行卡,点菜布拉切,大莱卡,发现/诺瓦斯,JCB,MasterCard和Visa卡检查。 欲了解更多信息,请阅读代码本身的注释。安装说明 选择所指出的,下面的两行之间的文本。 复制的文本。 打开一个文本编辑器。 粘贴的文本。 保存该文件。当保存,确保: 它保存在网络服务器上的目录,并 与你的服务器会识别需要通过PHP解析扩展的名字。 要看到它在行动,在你的网页browswer打开该文件。
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
120
121
122
123
124
125
126
127
128
<code class="php">
/**
 * 一个通用的信用卡验证php类
 *
 * @param
 * @arrange 512-笔记网: www.512Pic.com
 **/
function CCValidationSolution ($Number) {
    global $CardName;
    # 1) Get rid of spaces and non-numeric characters.
    $Number = OnlyNumericSolution($Number);
    # 2) Do the first four digits fit within proper ranges?
    #     If so, who's the card issuer and how long should the number be?
    $NumberLeft = substr($Number, 0, 4);
    $NumberLength = strlen($Number);
    if ($NumberLeft >= 3000 and $NumberLeft <= 3059) {
        $CardName = "Diners Club";
        $ShouldLength = 14;
    } elseif ($NumberLeft >= 3600 and $NumberLeft <= 3699) {
        $CardName = "Diners Club";
        $ShouldLength = 14;
    } elseif ($NumberLeft >= 3800 and $NumberLeft <= 3889) {
        $CardName = "Diners Club";
        $ShouldLength = 14;
    } elseif ($NumberLeft >= 3400 and $NumberLeft <= 3499) {
        $CardName = "American Express";
        $ShouldLength = 15;
    } elseif ($NumberLeft >= 3700 and $NumberLeft <= 3799) {
        $CardName = "American Express";
        $ShouldLength = 15;
    } elseif ($NumberLeft >= 3528 and $NumberLeft <= 3589) {
        $CardName = "JCB";
        $ShouldLength = 16;
    } elseif ($NumberLeft >= 3890 and $NumberLeft <= 3899) {
        $CardName = "Carte Blache";
        $ShouldLength = 14;
    } elseif ($NumberLeft >= 4000 and $NumberLeft <= 4999) {
        $CardName = "Visa";
        if ($NumberLength > 14) {
            $ShouldLength = 16;
        } elseif ($NumberLength < 14) {
            $ShouldLength = 13;
        } else {
            echo "<br /><em>The Visa number entered, $Number, in is 14 digits long.<br />Visa cards usually have 16 digits, though some have 13.<br />Please check the number and try again.</em><br />n";
            return FALSE;
        }
    } elseif ($NumberLeft >= 5100 and $NumberLeft <= 5599) {
        $CardName = "MasterCard";
        $ShouldLength = 16;
    } elseif ($NumberLeft == 5610) {
        $CardName = "Australian BankCard";
        $ShouldLength = 16;
    } elseif ($NumberLeft == 6011) {
        $CardName = "Discover/Novus";
        $ShouldLength = 16;
    } else {
        echo "<br /><em>The first four digits of the number entered are $NumberLeft. <br />If that's correct, we don't accept that type of credit card.<br />If it's wrong, please try again.</em><br />n";
        return FALSE;
    }
    # 3) Is the number the right length?
    if ($NumberLength <> $ShouldLength) {
        $Missing = $NumberLength - $ShouldLength;
        if ($Missing < 0) {
            echo "<br /><em>The $CardName number entered, $Number, is missing " . abs($Missing) . " digit(s).<br />Please check the number and try again.</em><br />n";
        } else {
            echo "<br /><em>The $CardName number entered, $Number, has $Missing too many digit(s).<br />Please check the number and try again.</em><br />n";
        }
        return FALSE;
    }
    # 4) Does the number pass the Mod 10 Algorithm Checksum?
    if (Mod10Solution($Number) == TRUE) {
        return TRUE;
    } else {
        echo "<br /><em>The $CardName number entered, $Number, is invalid.<br />Please check the number and try again.</em><br />n";
    return FALSE;
    }
}
function OnlyNumericSolution ($Number) {
   # Remove any non numeric characters.
   # Ensure number is no more than 19 characters long.
   return substr( ereg_replace( "[^0-9]", "", $Number) , 0, 19);
}
function Mod10Solution ($Number) {
    $NumberLength = strlen($Number);
    $Checksum = 0;
    # Add even digits in even length strings
    # or odd digits in odd length strings.
    for ($Location = 1 - ($NumberLength % 2); $Location < $NumberLength; $Location += 2) {
        $Checksum += substr($Number, $Location, 1);
    }
    # Analyze odd digits in even length strings
    # or even digits in odd length strings.
    for ($Location = ($NumberLength % 2); $Location < $NumberLength; $Location += 2) {
        $Digit = substr($Number, $Location, 1) * 2;
        if ($Digit < 10) {
            $Checksum += $Digit;
        } else {
            $Checksum += $Digit - 9;
        }
    }
    # Is the checksum divisible by ten?
    return ($Checksum % 10 == 0);
}
#  -----------  BEGIN SAMPLE USER INTERFACE SECTION  ------------
#
# This section provides a simple sample user interface for the
# Credit Card Validation functions.  It generates an HTML form
# where you enter a card number to check.
#
    # If a number has been posted by the form, check it.
    if ( isset($Number) ) {
        # Get rid of spaces and non-numeric characters in posted
        # numbers so they display correctly on the input form.
        $Number = OnlyNumericSolution($Number);
        if (CCValidationSolution($Number) == TRUE) {
            echo "<br />The $CardName number entered, $Number, <em>is</em> valid.<br />n";
        }
    } else {
        $Number = "";
    }
    # Setup an input form.  Posting it calls this page again.
    echo "<form method="post" action="$REQUEST_URI">n";
    echo "<br />Credit Card Number: <input type="text" name="Number" value="$Number">n";
    echo "<input type="Submit" name="submitr" value="Check its Validity">n";
    echo "</form><br />n";
 
     
/***   来自php教程(www.idcnote.com)   ***/</code>

注:关于php 一个通用信用卡验证类的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!