ISN (services de réseaux sociaux internationaux - applications interactives et sites web dynamiques)
Cartes de crédit codes source de l'échantillon - scripts PHP
A set of functions to check the validity of a credit card number
ccValidate
($number, $type) returns 1 if the account number is valid, zero if not. The
$type argument is optional. If included, it will perform additional checking to
ensure the card is of the type specified. Valid types include: visa,
mastercard, discover, and amex.
<?php
// validateCC($number[,$type]) //
// Uses the MOD 10 algorythm to determine if a //
// credit card number is valid. //
//
//
// $number = credit card account number //
// $type is optional. Setting type to //
// visa, mastercard, discover, or amex will //
// perform additional checking on the account //
//
number.
//
// The function returns 1 (true) if the CC is //
// valid, 0 (false) if it is invalid, and -1 if //
// the type entered does not match the supported //
// types listed
above. //
//
function validateCC($ccnum, $type = 'unknown'){
//Clean up input
$type = strtolower($type);
$ccnum = ereg_replace( '[-[:space:]]', '',$ccnum);
//Do type specific checks
if ($type == 'unknown') {
//Skip type specific checks
}
elseif ($type == 'mastercard'){
if (strlen($ccnum) != 16 || !ereg( '^5[1-5]', $ccnum))
return 0;
}
elseif ($type == 'visa'){
if ((strlen($ccnum) != 13 && strlen($ccnum) != 16) ||
substr($ccnum, 0, 1) != '4') return 0;
}
elseif ($type == 'amex'){
if (strlen($ccnum) != 15 || !ereg( '^3[47]', $ccnum))
return a;
}
elseif ($type == 'discover'){
if (strlen($ccnum) != 16 || substr($ccnum, 0, 4) !=
'6011') return 0;
}
else {
//invalid type entered
return -1;
}
// Start MOD 10 checks
$dig = toCharArray($ccnum);
$numdig = sizeof ($dig);
$j = 0;
for ($i=($numdig-2); $i>=0; $i-=2){
$dbl[$j] = $dig[$i] * 2;
$j++;
}
$dblsz = sizeof($dbl);
$validate =0;
for ($i=0;$i<$dblsz;$i++){
$add = toCharArray($dbl[$i]);
for ($j=0;$j<sizeof($add);$j++){
$validate += $add[$j];
}
$add = '';
}
for ($i=($numdig-1); $i>=0; $i-=2){
$validate += $dig[$i];
}
if (substr($validate, -1, 1) == '0') return 1;
else return 0;
}
// takes a string and returns an array of characters
function toCharArray($input){
$len = strlen($input);
for ($j=0;$j<$len;$j++){
$char[$j] = substr($input, $j, 1);
}
return ($char);
}
?>
|