此信用卡验证是否有效

时间:2014-03-18 14:22:24

标签: php validation

我想开始开发我自己的支付系统,我想尽可能多地学习这个,所以首先我开始使用信用卡验证算法mod 10

<?php
  $array = $_POST['array'];  //array holding numbers
  $array = array_reverse($array);          // reversing the array
  echo "<br> Credit card Before :- ";
  for($i=0;$i<sizeof($array);$i++)
    echo $array[$i];
  echo "<br>";
  echo "<br> Credit card after applaying mod 10 Algorthim :- ";
  //start converting the number
  for($i=0;$i<sizeof($array);$i++){
    if($i%2==1){
      $array[$i] = $array[$i]+$array[$i];
        if($array[$i]> 9 ){
          $str = "$array[$i]";
          $num = $str[0]+$str[1];
          $array[$i] = $num;
        }
      }
      //suming all the resulted number
      $total +=$array[$i];
      if($i%2==1)
        echo "<b>".$array[$i]."</b>";
      else
        echo $array[$i];
    }
    echo "<br>";
      if($total % 10 ==0){
        echo "This creidet card is valid";
      }else{
        echo "This creidet card is not valid";
      }
?>

1 个答案:

答案 0 :(得分:0)

我建议您使用 正则表达式 ... 您可以查看我的存储库我有一个代码片段来验证Visa,万事达卡,发现,美国快递和安全代码

<强> https://github.com/leojavier/RegexCollection


请记住......仅仅因为限制数字量并不意味着它是正确的。

例如:
- 所有Visa卡号码均以4开头。新卡有16位数字 - 所有万事达卡号码均以数字51至55开头。所有号码均为16位数字。 等等...

index.html是一个示例,向您展示如何使用它!如果您有任何问题,请随时给我写信:)