////////////////////////////////////////////////////
// //
// Credit card validation routine //
// May 15, 2000 //
// By ariso //
// validateCardCode($number[,$cardtype]) //
////////////////////////////////////////////////////
function validateCardCode($cardnumber, $cardtype = unknown)
{
//Clean up input
$cardtype = strtolower($cardtype);
$cardnumber = ereg_replace( [-[:space:]], ,$cardnumber);
//Do type specific checks
if ($cardtype == unknown) {
//Skip type specific checks
}
elseif ($cardtype == mastercard){
if (strlen($cardnumber) != 16 || !ereg( 5[1-5], $cardnumber)) return 0;
}
elseif ($cardtype == visa){
if ((strlen($cardnumber) != 13 && strlen($cardnumber) != 16) || substr($cardnumber, 0, 1) != 4)
return 0;
}
elseif ($cardtype == amex){
if (strlen($cardnumber) != 15 || !ereg( 3[47], $cardnumber)) return a;
}
elseif ($cardtype == discover){
if (strlen($cardnumber) != 16 || substr($cardnumber, 0, 4) != 6011) return 0;
}
else {
//invalid type entered
return -1;
}
// Start MOD 10 checks
$dig = toCharArray($cardnumber);
$numdig = sizeof ($dig);
$intIntJ = 0;
for ($intI=($numdig-2); $intI>=0; $intI-=2){
$dbl[$intIntJ] = $dig[$intI] * 2;
$intIntJ++;
}
$dblsz = sizeof($dbl);
$validate =0;
for ($intI=0;$intI$add = toCharArray($dbl[$intI]);
for ($intIntJ=0;$intIntJ
$validate += $add[$intIntJ];
}
$add = ;
}
for ($intI=($numdig-1); $intI>=0; $intI-=2){
$validate += $dig[$intI];
}
if (substr($validate, -1, 1) == 0) return 1;
else return 0;
}
// takes a string and returns an array of characters
function toCharArray($intInput){
$len = strlen($intInput);
for ($intIntJ=0;$intIntJ$char[$intIntJ] = substr($intInput, $intIntJ, 1);
}
return ($char);
}
?>
http://www.bkjia.com/PHPjc/532177.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/532177.htmlTechArticle//////////////////////////////////////////////////// // // // Credit card validation routine // // May 15, 2000 // // By ariso // // validateCardCode($number[,$cardtype]) // //////...
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn