Try this: function do_mod_10($num) { // The Luhn formula works right to left, so reverse the number. $num = strrev($num); $total = 0; for ($i = 0, $j = 1; $i < strlen($num); $i++, $j=3-$j) { $digit = $num[$i] * $j; if ($digit > 9) $digit -= 9; $total += $digit; }
return ($total % 10 == 0); } -----Original Message----- From: Mark McCulligh [mailto:[EMAIL PROTECTED]] Sent: Wednesday, July 24, 2002 10:47 AM To: [EMAIL PROTECTED] Subject: [PHP] Re: Credit card checks? You could use an algorithms called mod10. Both Visa, MasterCard and I think most other credit cards use the mod10 algorithm. A credit card must pass a mod10 test to be a valid number(Like a Regular Expression test). It won't tell you if the number exist, but it will tell you if it could exist. I also know the mod10 is used for Canadian Social Security numbers (SIN). Unfortunately I have never seen a PHP function for it, I only used mod10 in a language called Uniface by Compuware. I know there is another name for it also, but I can't remember it right now. It is a great test, someone just typing in numbers at random will have a terrible time guessing a number right. I have never seen someone do it let. Then you can use the first character of the number to test the card type. I will see if I can locate the algorithm and email it too you. Mark "Jas" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > Just wondering if anyone has come across the need to develop a class to test > a string of numbers based on a credit card type. If you have where would I > be able to get information on what string of numbers is consistent with each > of the different credit cards? Any help would be appreciated! > Jas > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php