////////////////////////////////////////////////////
// //
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)! = | | |!ereg (' 5[1-5] ', $cardnumber)) return 0;
}
ElseIf ($cardtype = = ' Visa ') {
if (strlen ($cardnumber)! = && strlen ($cardnumber)! =) | | substr ($cardnumber, 0, 1)! = ' 4 ')
return 0;
}
ElseIf ($cardtype = = ' Amex ') {
if (strlen ($cardnumber)! = | | |!ereg (' 3[47] ', $cardnumber)) return A;
}
ElseIf ($cardtype = = ' discover ') {
if (strlen ($cardnumber)! = | | | substr ($cardnumber, 0, 4)! = ' 6011 ') return 0;
}
else {
Invalid type entered
return-1;
}
Start MOD Ten 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 < $dblsz; $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 < $len; $intIntJ + +) {
$char [$intIntJ] = substr ($intInput, $intIntJ, 1);
}
return ($char);
}
?>
http://www.bkjia.com/PHPjc/316333.html www.bkjia.com true http://www.bkjia.com/PHPjc/316333.html techarticle ? PHP//////////////////////////////////////////////////////////Credit card validation routine////May 15, 2000/// /by ariso////Validatecardcode ($number [, $cardtype])/////////...