Revision: 15633
Updated Code
at July 12, 2009 12:18 by Shifter
Updated Code
function fnValidateCc($mValue, $sCard = '')
{
if ($sCard == 'visa')
{
$sPattern = '/^4([0-9]{12}|[0-9]{15})$/';
}
else if ($sCard == 'amex')
{
$sPattern = '/^3[4|7][0-9]{13}$/';
}
else if ($sCard == 'mastercard')
{
$sPattern = '/^5[1-5][0-9]{14}$/';
}
else if ($sCard == 'discover')
{
$sPattern = '/^6011[0-9]{12}$/';
}
else if ($sCard == 'dinners')
{
$sPattern = '/^[30|36|38]{2}[0-9]{12}$/';
}
else if (empty($sCard))
{
$sPattern = '/^[0-9]{13,19}$/';
}
else
{
return false;
}
if (preg_match($sPattern, $mValue))
{
// Modulo 10
$iSum = 0;
$iWeight = 2;
$iLength = strlen($mValue);
for ($i = $iLength - 2; $i >= 0; $i--)
{
$iDigit = $iWeight * $mValue[$i];
$iSum += floor($iDigit / 10) + $iDigit % 10;
$iWeight = $iWeight % 2 + 1;
}
if ((10 - $iSum % 10) % 10 == $mValue[$iLength - 1])
{
return true;
}
}
return false;
}
Revision: 15632
Updated Code
at July 12, 2009 12:13 by Shifter
Updated Code
function fnValidateCc($mValue, $sCard = '')
{
if ($sCard == 'visa')
{
$sPattern = '/^4([0-9]{12}|[0-9]{15})$/';
}
else if ($sCard == 'amex')
{
$sPattern = '/^3[4|7][0-9]{13}$/';
}
else if ($sCard == 'master')
{
$sPattern = '/^5[1-5][0-9]{14}$/';
}
else if ($sCard == 'discover')
{
$sPattern = '/^6011[0-9]{12}$/';
}
else if ($sCard == 'dinners')
{
$sPattern = '/^[30|36|38]{2}[0-9]{12}$/';
}
else if (empty($sCard))
{
$sPattern = '/^[0-9]{13,19}$/';
}
else
{
return false;
}
if (preg_match($sPattern, $mValue))
{
// Modulo 10
$iSum = 0;
$iWeight = 2;
$iLength = strlen($mValue);
for ($i = $iLength - 2; $i >= 0; $i--)
{
$iDigit = $iWeight * $mValue[$i];
$iSum += floor($iDigit / 10) + $iDigit % 10;
$iWeight = $iWeight % 2 + 1;
}
if ((10 - $iSum % 10) % 10 == $mValue[$iLength - 1])
{
return true;
}
}
return false;
}
Revision: 15631
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 12, 2009 12:13 by Shifter
Initial Code
function fnValidateCc($mValue, $sCard = '')
{
if ($sCard == 'visa')
{
$sPattern = '/^4([0-9]{12}|[0-9]{15})$/';
}
else if ($sCard == 'amex')
{
$sPattern = '/^3[4|7][0-9]{13}$/';
}
else if ($sCard == 'master')
{
$sPattern = '/^5[1-5][0-9]{14}$/';
}
else if ($sCard == 'discover')
{
$sPattern = '/^6011[0-9]{12}$/';
}
else if ($sCard == 'dinners')
{
$sPattern = '/^[30|36|38]{2}[0-9]{12}$/';
}
else if (empty($sCard))
{
$sPattern = '/^[0-9]{13,19}$/';
}
else
{
return false;
}
if (preg_match($sPattern, $mValue))
{
// Modulo 10
$iSum = 0;
$iWeight = 2;
$iLength = strlen($mValue);
for ($i = $iLength - 2; $i >= 0; $i--)
{
$iDigit = $iWeight * $mValue[$i];
$iSum += floor($iDigit / 10) + $iDigit % 10;
$iWeight = $iWeight % 2 + 1;
}
if ((10 - $iSum % 10) % 10 == $mValue[$iLength - 1])
{
return true;
}
}
return false;
}
Initial URL
Initial Description
Initial Title
Validate Credit Card Number
Initial Tags
number
Initial Language
PHP