2012-02-08 11 views
-1

私はLuhnのアルゴリズムを使ってクレジットカードの検証を行っていました。その番号が有効なクレジットカード番号であるかどうかを確認するだけです。Luhn'sを使ったクレジットカードの有効性確認

$number=clean($_GET['number']); 
if (LuhnCheck($number) == 0) 
{ 
    echo "credit card valid"; 
} 
else 
{ 
    echo "invalid"; 
} 

function LuhnCheck($strDigits) 
    { 
     $sum = 0; 
     $alt = false; 
     for($i = strlen($strDigits) - 1; $i >= 0; $i--) 
     { 
      if($alt) 
      { 
       $temp = $strDigits[$i]; 
       $temp *= 2; 
       $strDigits[$i] = ($temp > 9) ? $temp = $temp - 9 : $temp; 
      } 
      $sum += $strDigits[$i]; 
      $alt = !$alt; 
     } 
     return $sum % 10 == 0; 
    } 

AMEX、ディスカバリー、ビザ、およびマスターカードについて上記は有効ですか?私は確認することができません。 https://github.com/iHwy/jQuery-Validation-Extension

や銀行カード番号についてのwikiエントリ http://en.wikipedia.org/wiki/Bank_card_numbers.

編集: とPHPスクリプト:ここ

+4

あなたはそれをテストすることなく、クレジットカードの検証プログラムを展開したいですか? – Borealid

+4

コードレビューの質問はここでは受け入れられません。これは無料のソフトウェアテストサービスではありません。 – meagar

+1

たぶん彼はそれをテストし、彼のカードはちょうどumの... notmindの一つではありません。 – Problematic

答えて

1

はjQueryプラグインであるウィキペディアによるhttp://www.braemoor.co.uk/software/creditcard.php

+3

クライアント側の検証ソリューションは十分ではありません – veritas

+1

ok http://www.braemoor.co.uk/software/creditcard.php –

+0

ZENDは最も簡単な方法です。ありがとう! – Micheal

5

Luhn algorithmが使用されていますすべてのISO/IED-7812カード番号についてアメリカン・エキスプレスは旅行およびエンターテインメント部門に属しており、番号は3で始まります。 Discover、Visa、およびMastercardは銀行および金融カテゴリに属しているため、番号は4または5で始まります(ディスカバリもマーチャンダイジングにあるので、番号は6で始まります)。

あなたのコードがLuhnアルゴリズムを実装している場合、要するに、American Express、Discover、Visa、およびMastercardで動作します。

+0

@meagerコードレビューを求めていません。私はこれらのカードをすべて持っていません。 私はfuzzyDunlopとCanSpiceが推奨したものを考慮に入れます。 – Micheal

関連する問題