Moin
ich will Kreditkartennummer auf den Luhnalgorythmus prüfen. Dazu nutz eich folgende (nicht von mir stammende) Funktion:
// Is the number valid against luhn?
$cardNumber = strrev($this->__ccNum);
$numSum = 0;
for($i = 0; $i < strlen($cardNumber); $i++)
{
$currentNum = substr($cardNumber, $i, 1);
if(floor($currentNum / 2) != $currentNum / 2)
{
$currentNum *= 2;
}
if(strlen($currentNum) == 2)
{
$firstNum = substr($currentNum, 0, 1);
$secondNum = substr($currentNum, 1, 1);
$currentNum = $firstNum + $secondNum;
}
$numSum += $currentNum;
}
// If the total has no remained its OK
$passCheck = ($numSum % 10 == 0 ? true : false);
leider ist passCheck auch mit reelen Kartennummern false. Ich verstehe leider nicht ganz wieso. Wer kann mir helfen?
Gruß Bobby
--
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
-> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
-> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)