12) { ocheck(); } else { invalid_cc(); } } // pick one for Visa Function vver () { global $f_strCardNum,$f_strCreditCard,$g_intCardLength,$g_arrCreditCard; if($g_intCardLength == 13) { ver13(); } elseif($g_intCardLength == 16) { ver16(); } } // For 13 digit cards Function ver13 () { global $f_strCardNum,$f_strCreditCard,$g_intCardLength,$g_arrCreditCard; $intCCard1a = $g_arrCreditCard[1] * 2; $intCCard3a = $g_arrCreditCard[3] * 2; $intCCard5a = $g_arrCreditCard[5] * 2; $intCCard7a = $g_arrCreditCard[7] * 2; $intCCard9a = $g_arrCreditCard[9] * 2; $intCCard11a = $g_arrCreditCard[11] * 2; if($intCCard1a >= 10) { $intCCard1b = substr($intCCard1a, 0, 1); $intCCard1c = substr($intCCard1a, 1, 1); $intCCard1 = $intCCard1b + $intCCard1c; } else { $intCCard1 = $intCCard1a; } if($CreditCard3a >= 10) { $intCCard3b = substr($intCCard3a, 0, 1); $intCCard3c = substr($intCCard3a, 1, 1); $g_arrCreditCard[3] = $intCCard3b + $intCCard3c; } else { $g_arrCreditCard[3] = $intCCard3a; } if($intCCard5a >= 10) { $intCCard5b = substr($intCCard5a, 0, 1); $intCCard5c = substr($intCCard5a, 1, 1); $g_arrCreditCard[5] = $intCCard5b + $intCCard5c; } else { $g_arrCreditCard[5] = $intCCard5a; } if($intCCard7a >= 10) { $intCCard7b = substr($intCCard7a, 0, 1); $intCCard7c = substr($intCCard7a, 1, 1); $g_arrCreditCard[7] = $intCCard7b + $intCCard7c; } else { $g_arrCreditCard[7] = $intCCard7a; } if($intCCard9a >= 10) { $intCCard9b = substr($intCCard9a, 0, 1); $intCCard9c = substr($intCCard9a, 1, 1); $g_arrCreditCard[9] = $intCCard9b + $intCCard9c; } else { $g_arrCreditCard[9] = $intCCard9a; } if($intCCard11a >= 10) { $intCCard11b = substr($intCCard11a, 0, 1); $intCCard11c = substr($intCCard11a, 1, 1); $g_arrCreditCard[11] = $intCCard11b + $intCCard11c; } else { $g_arrCreditCard[11] = $intCCard11a; } $strVal = $g_arrCreditCard[0] + $g_arrCreditCard[1] + $g_arrCreditCard[2] + $g_arrCreditCard[3] + $g_arrCreditCard[4] + $g_arrCreditCard[5] + $g_arrCreditCard[6] + $g_arrCreditCard[7] + $g_arrCreditCard[8] + $g_arrCreditCard[9] + $g_arrCreditCard[10] + $g_arrCreditCard[11] + $g_arrCreditCard[12]; if(substr($strVal,1,1) !=0 ) { invalid_cc(); } } // For 16 digit cards Function ver16 () { global $f_strCardNum,$f_strCreditCard,$g_intCardLength,$g_arrCreditCard; $intCCard0a = $g_arrCreditCard[0] * 2; $intCCard2a = $g_arrCreditCard[2] * 2; $intCCard4a = $g_arrCreditCard[4] * 2; $intCCard6a = $g_arrCreditCard[6] * 2; $intCCard8a = $g_arrCreditCard[8] * 2; $intCCard10a = $g_arrCreditCard[10] * 2; $intCCard12a = $g_arrCreditCard[12] * 2; $intCCard14a = $g_arrCreditCard[14] * 2; if($intCCard0a >= 10) { $intCCard0b = substr($intCCard0a, 0, 1); $intCCard0c = substr($intCCard0a, 1, 1); $g_arrCreditCard[0] = $intCCard0b + $intCCard0c; } else { $g_arrCreditCard[0] = $intCCard0a; } if($intCCard2a >= 10) { $intCCard2b = substr($intCCard2a, 0, 1); $intCCard2c = substr($intCCard2a, 1, 1); $g_arrCreditCard[2] = $intCCard2b + $intCCard2c; } else { $g_arrCreditCard[2] = $intCCard2a; } if($intCCard4a >= 10) { $intCCard4b = substr($intCCard4a, 0, 1); $intCCard4c = substr($intCCard4a, 1, 1); $g_arrCreditCard[4] = $intCCard4b + $intCCard4c; } else { $g_arrCreditCard[4] = $intCCard4a; } if($intCCard6a >= 10) { $intCCard6b = substr($intCCard6a, 0, 1); $intCCard6c = substr($intCCard6a, 1, 1); $g_arrCreditCard[6] = $intCCard6b + $intCCard6c; } else { $g_arrCreditCard[6] = $intCCard6a; } if($intCCard8a >= 10) { $intCCard8b = substr($intCCard8a, 0, 1); $intCCard8c = substr($intCCard8a, 1, 1); $g_arrCreditCard[8] = $intCCard8b + $intCCard8c; } else { $g_arrCreditCard[8] = $intCCard8a; } if($intCCard10a >= 10) { $intCCard10b = substr($intCCard10a, 0, 1); $intCCard10c = substr($intCCard10a, 1, 1); $g_arrCreditCard[10] = $intCCard10b + $intCCard10c; } else { $g_arrCreditCard[10] = $intCCard10a; } if($intCCard12a >= 10) { $intCCard12b = substr($intCCard12a, 0, 1); $intCCard12c = substr($intCCard12a, 1, 1); $g_arrCreditCard[12] = $intCCard12b + $intCCard12c; } else { $g_arrCreditCard[12] = $intCCard12a; } if($intCCard14a >= 10) { $intCCard14b = substr($intCCard14a, 0, 1); $intCCard14c = substr($intCCard14a, 1, 1); $g_arrCreditCard[14] = $intCCard14b + $intCCard14c; } else { $g_arrCreditCard[14] = $intCCard14a; } $strVal = $g_arrCreditCard[0] + $g_arrCreditCard[1] + $g_arrCreditCard[2] + $g_arrCreditCard[3] + $g_arrCreditCard[4] + $g_arrCreditCard[5] + $g_arrCreditCard[6] + $g_arrCreditCard[7] + $g_arrCreditCard[8] + $g_arrCreditCard[9] + $g_arrCreditCard[10] + $g_arrCreditCard[11] + $g_arrCreditCard[12] + $g_arrCreditCard[13] + $g_arrCreditCard[14] + $g_arrCreditCard[15]; if(substr($strVal,1,1) !=0 ) { invalid_cc(); } } // For 15 digit (Amex) cards Function ver15 () { global $f_strCardNum,$f_strCreditCard,$g_intCardLength,$g_arrCreditCard; $intCCard1a = $g_arrCreditCard[1] * 2; $intCCard3a = $g_arrCreditCard[3] * 2; $intCCard5a = $g_arrCreditCard[5] * 2; $intCCard7a = $g_arrCreditCard[7] * 2; $intCCard9a = $g_arrCreditCard[9] * 2; $intCCard11a = $g_arrCreditCard[11] * 2; $intCCard13a = $g_arrCreditCard[13] * 2; if($intCCard1a >= 10) { $intCCard1b = substr($intCCard1a,0,1); $intCCard1c = substr($intCCard1a,1,1); $g_arrCreditCard[1] = $intCCard1b + $intCCard1c; } else { $g_arrCreditCard[1] = $intCCard1a; } if($intCCard3a >= 10) { $intCCard3b = substr($intCCard3a,0,1); $intCCard3c = substr($intCCard3a,1,1); $g_arrCreditCard[3] = $intCCard3b + $intCCard3c; } else { $g_arrCreditCard[3] = $intCCard3a; } if($intCCard5a >= 10) { $intCCard5b = substr($intCCard5a,0,1); $intCCard5c = substr($intCCard5a,1,1); $g_arrCreditCard[5] = $intCCard5b + $intCCard5c; } else { $g_arrCreditCard[5] = $intCCard5a; } if($intCCard7a >= 10) { $intCCard7b = substr($intCCard7a,0,1); $intCCard7c = substr($intCCard7a,1,1); $g_arrCreditCard[7] = $intCCard7b + $intCCard7c; } else { $g_arrCreditCard[7] = $intCCard7a; } if($intCCard9a >= 10) { $intCCard9b = substr($intCCard9a,0,1); $intCCard9c = substr($intCCard9a,1,1); $g_arrCreditCard[9] = $intCCard9b + $intCCard9c; } else { $g_arrCreditCard[9] = $intCCard9a; } if($intCCard11a >= 10) { $intCCard11b = substr($intCCard11a,0,1); $intCCard11c = substr($intCCard11a,1,1); $g_arrCreditCard[11] = $intCCard11b + $intCCard11c; } else { $g_arrCreditCard[11] = $intCCard11a; } if($intCCard13a >= 10) { $intCCard13b = substr($intCCard13a,0,1); $intCCard13c = substr($intCCard13a,1,1); $g_arrCreditCard[13] = $intCCard13b + $intCCard13c; } else { $g_arrCreditCard[13] = $intCCard13a; } $strVal = $g_arrCreditCard[0] + $g_arrCreditCard[1] + $g_arrCreditCard[2] + $g_arrCreditCard[3] + $g_arrCreditCard[4] + $g_arrCreditCard[5] + $g_arrCreditCard[6] + $g_arrCreditCard[7] + $g_arrCreditCard[8] + $g_arrCreditCard[9] + $g_arrCreditCard[10] + $g_arrCreditCard[11] + $g_arrCreditCard[12] + $g_arrCreditCard[13] + $g_arrCreditCard[14]; if(substr($strVal,1,1) !=0 ) { invalid_cc(); } } Function ocheck () { global $f_strCardNum,$f_strCreditCard,$g_intCardLength,$g_arrCreditCard; for($intI = 0; $intI < $g_intCardLength - 1; $intI++) { $intWeight = substr($f_strCardNum, -1 * ($intI + 2), 1) * (2 - ($intI % 2)); $intSum += (($intWeight < 10) ? $intWeight : ($intWeight - 9)); } if(substr($f_strCardNum, -1) != (10 - $intSum % 10) % 10) { invalid_cc(); } } Function invalid_cc () { global $g_blnValid, $g_strErrExternal, $g_strErrInternal; $g_blnValid = false; $g_strErrExternal = "Your Credit Card Number is Invalid."; $g_strErrInternal = "Your Credit Card Number is Invalid"; } ?>