-1

Luhnのアルゴリズムを使用してクレジットカードの検証に取り組んでいました。番号が有効なクレジットカード番号であるかどうかを確認する必要があります。

$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、discover、visa、mastercardで機能しますか?確認できません。

4

3 に答える 3

5

ウィキペディアによると、LuhnアルゴリズムはすべてのISO/IED-7812カード番号に使用されています。American Expressは旅行および娯楽のカテゴリーに属しているため、その番号は。で始まり3ます。Discover、Visa、Mastercardは銀行と金融のカテゴリに属しているため、番号は4またはで始まります5(Discoverもマーチャンダイジングに含まれているため、番号もで始まり6ます)。

つまり、コードがLuhnアルゴリズムを実装している場合は、そうです。AmericanExpress、Discover、Visa、Mastercardで機能します。

于 2012-02-08T23:17:45.153 に答える
1

jqueryプラグインは次のとおりです:https ://github.com/iHwy/jQuery-Validation-Extension

また、銀行カード番号に関するwikiエントリ http://en.wikipedia.org/wiki/Bank_card_numbers。

編集:およびphpスクリプト:http ://www.braemoor.co.uk/software/creditcard.php

于 2012-02-08T23:15:49.700 に答える
1

費用のかかるリスクが発生する可能性が高い場合は、車輪の再発明を行わないでください。

そこには多くの実績のあるライブラリがあります-ここに1つあります:

http://framework.zend.com/manual/1.12/en/zend.validate.set.html#zend.validate.set.creditcard

于 2012-02-08T23:35:17.127 に答える