Avatar billede straszek Praktikant
06. februar 2007 - 18:59 Der er 5 kommentarer og
1 løsning

validering af ean-nummer fejler

med henvisning til http://www.eksperten.dk/spm/755993 har jeg et uddybende spørgsmål/problem.

Kode som vi kom frem til i http://www.eksperten.dk/spm/755993 virker fint med udtagelse af ean-nummeret til hornum skole  5798004148150 (se evt. http://www.aars.dk/gfx/brugerupload/EAN-numrepdf(1).pdf). Skolen har oplyst at det er deres ean-nummer, det er tjekket og tjekket igen - så der må være noget galt med valideringskoden.

ER der nogen der kan hjælpe, vil det være fantastisk dejeligt :-)
Avatar billede erikjacobsen Ekspert
06. februar 2007 - 19:09 #1
Men den virker da - den sidste, som jeg mener jeg tjekkede i sin tid (ja, jeg gav kun et link, og "outsourcede" kodningen... hehe)  Nedenstående udskriver et flot "1" tal for "true":

<?
function getEan13CheckDigit($param) {
    $sum = 0;
    $odd = true;

    for ($i = 11; $i >= 0; $i--) {
        $val  = intval(substr($param, $i, 1));
        $val *= ($odd ? 3 : 1);
        $odd = !$odd;

        $sum += $val;
    }

    $check = 10 - ($sum % 10);

    return ($check == 10 ? 0 : $check);
}

function validateEan13($ean) {
    $valid = preg_match("/^\d{13}$/", $ean);
    $valid = $valid && (substr($ean, 12) == getEan13CheckDigit(substr($ean, 0, 12)));

    return $valid;
}

print validateEan13("5798004148150");
?>
Avatar billede erikjacobsen Ekspert
06. februar 2007 - 19:10 #2
Nåh, ja, du skriver den måske ind som et tal.... Men det er ikke et tal, det er en streng af cifre. Prøv det lige...
Avatar billede erikjacobsen Ekspert
06. februar 2007 - 19:11 #3
print 5798004148150;  giver 5.79800414815E+12  - derfor ;)
Avatar billede straszek Praktikant
19. februar 2007 - 15:09 #4
takker mange gang - smid et svar hvis du vil have point
Avatar billede erikjacobsen Ekspert
19. februar 2007 - 15:41 #5
Nej tak, jeg samler slet ikke på point.
Avatar billede straszek Praktikant
19. februar 2007 - 15:49 #6
endnu engang tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester