<?php
////////////////////////////////////////////////////
// //
// 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<$dblsz;$intI++){
$add
=
toCharArray($dbl[$intI]);
for
($intIntJ=0;$intIntJ<sizeof($add);$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);
}
?>
////////////////////////////////////////////////////
//
// Credit card validation routine
// May 15, 2000
// By ariso
// validateCardCode($number[,$cardtype])
////////////////////////////////////////////////////
function validateCardCode($cardnumber, $cardtype =
{
return 0;
}
// takes a string and returns an array of characters
function toCharArray($intInput){
}
?>