亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php實現通用的信用卡驗證類

2024-05-04 23:33:15
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php實現通用的信用卡驗證類,涉及信用卡的規則與php字符串操作的相關技巧,具有一定參考借鑒價值,文中有英文原文注釋說明,有助于更直觀的了解源碼相關信息,需要的朋友可以參考下

本文實例講述了php實現通用的信用卡驗證類。分享給大家供大家參考。

原文說明如下:

Credit Card Validation Solution (PHP Edition)

Version 3.5

Description

Credit Card Validation Solution™ uses a four step process to ensure credit card numbers are keyed in correctly. This procedure accurately checks cards from American Express, Australian BankCard, Carte Blache, Diners Club, Discover/Novus, JCB, MasterCard and Visa.

For more information, please read the comments in the code itself.

Installation Instructions

Select the text between the two lines indicated, below.

Copy the text.

Open up a text editor.

Paste the text.

Save that file. When saving it, make sure to:

save it in a directory on your webserver, and

name it with an extension that your server will recognize needs parsing by PHP.

To see it in action, open up that file in your web browswer.

具體代碼如下:

 

 
  1. <?php 
  2. # ------------------------------------------------------------------------ 
  3. # Credit Card Validation Solution, version 3.5 PHP Edition 
  4. # 25 May 2000 
  5. # COPYRIGHT NOTICE: 
  6. # a) This code is property of The Analysis and Solutions Company. 
  7. # b) It is being distributed free of charge and on an "as is" basis. 
  8. # c) Use of this code, or any part thereof, is contingent upon leaving 
  9. # this copyright notice, name and address information in tact. 
  10. # d) Written permission must be obtained from us before this code, or any 
  11. # part thereof, is sold or used in a product which is sold. 
  12. # e) By using this code, you accept full responsibility for its use 
  13. and will not hold the Analysis and Solutions Company, its employees 
  14. or officers liable for damages of any sort. 
  15. # f) This code is not to be used for illegal purposes. 
  16. # g) Please email us any revisions made to this code. 
  17. # Copyright 2000 http://www.AnalysisAndSolutions.com/code/ 
  18. # The Analysis and Solutions Company info@AnalysisAndSolutions.com 
  19. # ------------------------------------------------------------------------ 
  20. # DESCRIPTION: 
  21. # Credit Card Validation Solution uses a four step process to ensure 
  22. # credit card numbers are keyed in correctly. This procedure accurately 
  23. # checks cards from American Express, Australian BankCard, Carte Blache, 
  24. # Diners Club, Discover/Novus, JCB, MasterCard and Visa. 
  25. # CAUTION: 
  26. # CCVS uses exact number ranges as part of the validation process. These 
  27. # ranges are current as of 20 October 1999. If presently undefined ranges 
  28. # come into use in the future, this program will improperly deject card 
  29. # numbers in such ranges, rendering an error message entitled "Potential 
  30. # Card Type Discrepancy." If this happens while entering a card & type 
  31. # you KNOW are valid, please contact us so we can update the ranges. 
  32. # POTENTIAL CUSTOMIZATIONS: 
  33. # * If you don't accept some of these card types, edit Step 2, using pound 
  34. # signs "#" to comment out the "elseif," "$CardName" and "$ShouldLength" 
  35. # lines in question. 
  36. # * Additional card types can be added by inserting new "elseif," 
  37. "$CardName" and "$ShouldLength" lines in Step 2. 
  38. # * The three functions here can be called by other PHP documents to check 
  39. # any number. 
  40. # CREDITS: 
  41. # We learned of the Mod 10 Algorithm in some Perl code, entitled 
  42. "The Validator," available on Matt's Script Archive, 
  43. # http://worldwidemart.com/scripts/readme/ccver.shtml. That code was 
  44. # written by David Paris, who based it on material Melvyn Myers reposted 
  45. # from an unknown author. Paris credits Aries Solis for tracking down the 
  46. # data underlying the algorithm. At the same time, our code bears no 
  47. # resemblance to its predecessors. CCValidationSolution was first written 
  48. for Visual Basic, on which Allen Browne and Rico Zschau assisted. 
  49. # Neil Fraser helped prune down the OnlyNumericSolution() for Perl. 
  50. function CCValidationSolution ($Number) { 
  51. global $CardName
  52. # 1) Get rid of spaces and non-numeric characters. 
  53. $Number = OnlyNumericSolution($Number); 
  54. # 2) Do the first four digits fit within proper ranges? 
  55. # If so, who's the card issuer and how long should the number be? 
  56. $NumberLeft = substr($Number, 0, 4); 
  57. $NumberLength = strlen($Number); 
  58. if ($NumberLeft >= 3000 and $NumberLeft <= 3059) { 
  59. $CardName = "Diners Club"
  60. $ShouldLength = 14; 
  61. elseif ($NumberLeft >= 3600 and $NumberLeft <= 3699) { 
  62. $CardName = "Diners Club"
  63. $ShouldLength = 14; 
  64. elseif ($NumberLeft >= 3800 and $NumberLeft <= 3889) { 
  65. $CardName = "Diners Club"
  66. $ShouldLength = 14; 
  67. elseif ($NumberLeft >= 3400 and $NumberLeft <= 3499) { 
  68. $CardName = "American Express"
  69. $ShouldLength = 15; 
  70. elseif ($NumberLeft >= 3700 and $NumberLeft <= 3799) { 
  71. $CardName = "American Express"
  72. $ShouldLength = 15; 
  73. elseif ($NumberLeft >= 3528 and $NumberLeft <= 3589) { 
  74. $CardName = "JCB"
  75. $ShouldLength = 16; 
  76. elseif ($NumberLeft >= 3890 and $NumberLeft <= 3899) { 
  77. $CardName = "Carte Blache"
  78. $ShouldLength = 14; 
  79. elseif ($NumberLeft >= 4000 and $NumberLeft <= 4999) { 
  80. $CardName = "Visa"
  81. if ($NumberLength > 14) { 
  82. $ShouldLength = 16; 
  83. elseif ($NumberLength < 14) { 
  84. $ShouldLength = 13; 
  85. else { 
  86. 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"
  87. return FALSE; 
  88. elseif ($NumberLeft >= 5100 and $NumberLeft <= 5599) { 
  89. $CardName = "MasterCard"
  90. $ShouldLength = 16; 
  91. elseif ($NumberLeft == 5610) { 
  92. $CardName = "Australian BankCard"
  93. $ShouldLength = 16; 
  94. elseif ($NumberLeft == 6011) { 
  95. $CardName = "Discover/Novus"
  96. $ShouldLength = 16; 
  97. else { 
  98. 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"
  99. return FALSE; 
  100. # 3) Is the number the right length? 
  101. if ($NumberLength <> $ShouldLength) { 
  102. $Missing = $NumberLength - $ShouldLength
  103. if ($Missing < 0) { 
  104. 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"
  105. else { 
  106. 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"
  107. return FALSE; 
  108. # 4) Does the number pass the Mod 10 Algorithm Checksum? 
  109. if (Mod10Solution($Number) == TRUE) { 
  110. return TRUE; 
  111. else { 
  112. echo "<br /><em>The $CardName number entered, $Number, is invalid.<br />Please check the number and try again.</em><br />n"
  113. return FALSE; 
  114. function OnlyNumericSolution ($Number) { 
  115. # Remove any non numeric characters. 
  116. # Ensure number is no more than 19 characters long. 
  117. return substrereg_replace"[^0-9]"""$Number) , 0, 19); 
  118. function Mod10Solution ($Number) { 
  119. $NumberLength = strlen($Number); 
  120. $Checksum = 0; 
  121. # Add even digits in even length strings 
  122. or odd digits in odd length strings. 
  123. for ($Location = 1 - ($NumberLength % 2); $Location < $NumberLength$Location += 2) { 
  124. $Checksum += substr($Number$Location, 1); 
  125. # Analyze odd digits in even length strings 
  126. or even digits in odd length strings. 
  127. for ($Location = ($NumberLength % 2); $Location < $NumberLength$Location += 2) { 
  128. $Digit = substr($Number$Location, 1) * 2; 
  129. if ($Digit < 10) { 
  130. $Checksum += $Digit
  131. else { 
  132. $Checksum += $Digit - 9; 
  133. # Is the checksum divisible by ten? 
  134. return ($Checksum % 10 == 0); 
  135. # ----------- BEGIN SAMPLE USER INTERFACE SECTION ------------ 
  136. # This section provides a simple sample user interface for the 
  137. # Credit Card Validation functions. It generates an HTML form 
  138. # where you enter a card number to check. 
  139. # If a number has been posted by the form, check it. 
  140. if ( isset($Number) ) { 
  141. # Get rid of spaces and non-numeric characters in posted 
  142. # numbers so they display correctly on the input form. 
  143. $Number = OnlyNumericSolution($Number); 
  144. if (CCValidationSolution($Number) == TRUE) { 
  145. echo "<br />The $CardName number entered, $Number, <em>is</em> valid.<br />n"
  146. else { 
  147. $Number = ""
  148. # Setup an input form. Posting it calls this page again. 
  149. echo "<form method="post" action="$REQUEST_URI">n"
  150. echo "<br />Credit Card Number: <input type="text" name="Number" value="$Number">n"
  151. echo "<input type="Submit" name="submitr" value="Check its Validity">n"
  152. echo "</form><br />n"
  153. # ------------ END SAMPLE USER INTERFACE SECTION ------------- 
  154. ?> 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久极品av| 福利二区91精品bt7086| 欧美人与物videos| 国产在线不卡精品| 久久99久久99精品免观看粉嫩| 欧美日韩成人免费| 国产一区二区黑人欧美xxxx| 萌白酱国产一区二区| 日韩欧美在线免费| 亚洲一区二区三区sesese| 亚洲色图激情小说| 欧美精品一本久久男人的天堂| 国内揄拍国内精品少妇国语| 亚洲精品一区二区在线| 欧美日韩在线观看视频| 国产精品免费小视频| 欧美乱大交xxxxx| 国产精品免费一区| 亚洲国产第一页| 欧美在线一级va免费观看| 久久久在线免费观看| 操人视频在线观看欧美| 日韩有码片在线观看| 国产精品www| 亚洲夜晚福利在线观看| 欧美日韩国产91| 亚洲成年人影院在线| 欧美成年人视频| 久久综合亚洲社区| 91精品国产综合久久香蕉的用户体验| 久久精品国产欧美亚洲人人爽| 久久人人爽国产| 2018日韩中文字幕| 韩国三级日本三级少妇99| 青青在线视频一区二区三区| 欧美亚洲第一页| 91av在线国产| 亚洲a∨日韩av高清在线观看| 精品亚洲aⅴ在线观看| 欧亚精品中文字幕| 日韩高清电影免费观看完整| 亚洲一区二区少妇| 国产一区二区丝袜高跟鞋图片| 成人疯狂猛交xxx| 久久久久久国产精品美女| 成人黄色片网站| 福利视频一区二区| 国产+成+人+亚洲欧洲| 国产精品久久久久久久久久久久| 亚洲精品久久久一区二区三区| 亚洲美女www午夜| 7777免费精品视频| 成人两性免费视频| 精品久久国产精品| 精品中文视频在线| 精品视频在线观看日韩| 国产精品免费视频久久久| 久久免费少妇高潮久久精品99| 亚洲精品福利在线观看| 国产精品人成电影在线观看| 久热99视频在线观看| 亚洲一区二区三区xxx视频| 亚洲人成电影在线观看天堂色| 欧美中文在线字幕| 久久综合久久美利坚合众国| 欧美综合激情网| 亚洲人成绝费网站色www| 中文字幕在线成人| 欧美国产高跟鞋裸体秀xxxhd| 国产69精品久久久久久| 日韩激情第一页| 夜夜躁日日躁狠狠久久88av| 青草热久免费精品视频| 国产欧美精品xxxx另类| 日本午夜精品理论片a级appf发布| 国产欧洲精品视频| 久久精品夜夜夜夜夜久久| 国产美女精品免费电影| 国产精品欧美久久久| 日韩中文字幕国产| 国产一区红桃视频| 欧美乱大交做爰xxxⅹ性3| 久久夜精品va视频免费观看| 欧美高清不卡在线| 中文字幕亚洲二区| 97视频在线观看成人| 奇米四色中文综合久久| 国产第一区电影| 亚洲第一网中文字幕| 成人免费网站在线看| 日韩精品中文字幕有码专区| 欧美在线精品免播放器视频| 欧美在线免费视频| 91精品在线观看视频| 成人免费看片视频| 亚洲第一精品福利| 日韩在线观看免费全| 国产精品视频免费观看www| 久久影视电视剧免费网站清宫辞电视| 欧美性猛交99久久久久99按摩| 高清欧美性猛交xxxx| 欧美专区国产专区| 最近免费中文字幕视频2019| 91香蕉嫩草神马影院在线观看| 麻豆成人在线看| 欧美丰满片xxx777| 亚洲一区二区三区视频播放| 亚洲欧洲自拍偷拍| 久久精品男人天堂| 亚洲国产精品电影| 欧美视频在线视频| 日韩电影免费观看中文字幕| 日韩在线观看免费全集电视剧网站| 8x海外华人永久免费日韩内陆视频| 黑人巨大精品欧美一区二区三区| 97在线视频免费| 欧美亚洲在线观看| 欧美第一黄色网| 亚洲国产精品人久久电影| 国产精品久久久av| 国产精品入口夜色视频大尺度| 亚洲在线免费看| 欧美超级免费视 在线| 精品国产一区二区三区久久| 国产日产欧美精品| 精品成人国产在线观看男人呻吟| 日韩欧美视频一区二区三区| 中文字幕av一区二区三区谷原希美| 日韩欧美精品在线观看| 日韩av免费在线| 欧美黄色小视频| 国产男女猛烈无遮挡91| 欧美黄色www| 成人亲热视频网站| 欧美性生交大片免网| 激情av一区二区| 国产亚洲精品久久| 九色精品免费永久在线| 欧美日韩国产精品一区| 亚洲韩国欧洲国产日产av| 欧美性xxxx在线播放| 91精品国产综合久久久久久久久| 欧美亚洲视频在线观看| 最新国产精品亚洲| 精品亚洲一区二区三区| 国产亚洲免费的视频看| 久久精品一本久久99精品| 国产精品一区二区在线| 日韩欧美视频一区二区三区| 欧美情侣性视频| 久久视频国产精品免费视频在线| 久久久精品国产一区二区| 一区二区三区久久精品| 国产美女搞久久| 欧美一区二区三区免费观看| 国产精品高清在线观看| 91亚洲精品一区二区| 国产在线98福利播放视频| 亚洲精品美女久久| 国产成人极品视频| 少妇高潮久久久久久潘金莲| 中文字幕精品影院| 欧美激情精品久久久久久蜜臀| 日韩精品极品在线观看|